Как действительно "начать" с помощью FunScript

У меня возникают настоящие проблемы с попыткой начать работу с FunScript, мне очень нравится идея F # → Javascript, но постоянно разочаровывается количеством информации/документации о том, как работать с такими красивыми технологиями.

Здесь проблема:

Шаблон проекта FunScript Project (No Hosting) не может быть установлен, потому что: "Нужен Nuget Installed", говорит VS, когда я пытаюсь его загрузить. // Dah, I do have Nuget and just updated it to latest release. I'm using VS2013 Ultimate.

Я сделал следующее:

Я создал новый проект библиотеки FSharp, а затем я запустил команду Package Maneger для получения необходимых FunScript Libs:

PM> Install-Package FunScript

который работал хорошо, но потом., Когда я смотрю пример FunScript, я вижу open FunScript.TypeScript в программе, которая в настоящее время не существует, когда я печатаю ее, поскольку она говорит, что TypeScript не определяет, и глядя на примеры FunScript.TypeScript дает возможность использовать jQuery и взаимодействовать с DOM. так что без него я ничего не могу здесь сделать

Я заметил сторонние библиотеки Nuget для FunScript:

FuncScript.TypeScript.Bindings.(lib|jquery)

но я не могу ссылаться на те, которые содержатся в инструкции "open [namespace]".

и, наконец, в конце программы должно быть "выполнить компоненты Runtime...". это также "не определено"

У вас, ребята, есть полный пример FunScript, с которого я могу начать? (Я уже много раз искал в Интернете, программы, которые я видел, не работали со мной)

Ответ 1

Извините, проект по-прежнему немного тонкий в документации. Мы постараемся улучшить это в ближайшее время.

Теперь я обновил шаблон проекта Visual Studio Visual Studio, чтобы удалить зависимость менеджера пакетов NuGet. От v1.1.0.15 Он должен работать в Visual Studio 2013. Примечание. Возможно, вам придется дважды создать, чтобы правильно восстановить пакеты NuGet.

Вы получаете только базовый компилятор F # в JS (и некоторые сопоставления провайдеров типа FSharp.Data) в основном пакете NuGet. Если вы хотите получить доступ к JavaScript через привязки TypeScript, вы должны добавить ссылки на упомянутые вами пакеты "Bindings".

Имена этих пакетов фактически не отражают пространства имен в сборках. В настоящее время они импортируют типы в глобальное пространство имен (т.е. Они должны просто стать доступными в intellisense без открытия каких-либо пространств имен). Если TypeScript содержит модули, в этом случае функции и типы отображаются в соответствующие пространства имен .NET.

Например, Globals.alert(message) следует проверить тип после добавления пакета FunScript.TypeScript.Binding.lib NuGet.

Обратите внимание, что мы можем перенести эти определения в пространство имен FunScript.TypeScript в будущем, чтобы избежать загрязнения глобального пространства имен.

Вызов do Runtime.Run(components) в примерах на самом деле просто вспомогательный метод. Вероятно, нам следует удалить это из примеров, поскольку это смущает многих людей. Единственный метод, который вам действительно нужен, - это Compiler.Compile(<@ main() @>, noReturn = true), который компилирует цитату и возвращает строку JavaScript. Затем пользователь должен делать то, что они делают с этим JavaScript (например, помещаем его на размещенную страницу).

Я добавлю дополнительную документацию, используя FunScript, когда я выпущу еще один проект под названием HashBang, который использует FunScript для создания crawlable-dynamic-сайтов. Это будет включать пошаговые руководства по созданию и развертыванию с помощью HashBang/FunScript.

Ответ 2

У меня был гладкий вход...

Используется MS Visual Studio 2013 (профессиональный), с шаблоном проекта Vanilla "FunScript - Not Hosted" (автор Zach Bary), который можно найти в онлайн-поиске по проекту.

Затем добавьте соответствующие пакеты привязки FunScript (через NuGet). Я добавил некоторые из моих решений: FunScript.TypeScript.Binding.jquerymobile и FunScript.TypeScript.Binding.phonegap

Вы можете увидеть несколько моих примеров в GiHub (https://github.com/ZachBray/FunScript/tree/master/src/samples/EasyGettingStarted). Все, что вам нужно сделать, это заменить Program.fs из проекта по умолчанию (FunScript - Not Hosted). И добавьте остальные файлы. Я использую в качестве базы некоторый код Zach Bray. См. Файл README по ссылке выше.

Если у вас установлена ​​MS VS 2013, вам понадобится 5-10 минут. Я собираюсь представить больше примеров. Я рекомендую Funscript.

Ответ 3

В соответствии с рекомендацией Zach, приведенной выше, я создал пример рабочего проекта (по крайней мере, время написания) для OSX и Xamarin Studio:

https://github.com/mfrawley/Funny

Я обнаружил, что процесс установки абсолютно неинтуитивный, но теперь, когда он работает и видит множество пакетов NuGet, я очень рад видеть, как эта вещь развивается.