Как действительно начать работу с 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:
PM> Install-Package FunScript
это работало хорошо, но потом.,, Когда я смотрю на пример FunScript, я вижу open FunScript.TypeScript
в программе, которая в настоящее время не существует, когда я печатаю, что, как он говорит, TypeScript не определяет, и, глядя на примеры, FunScript.TypeScript дает возможность использовать jQuery и взаимодействовать с DOM. так что без этого я ничего не могу сделать здесь
Я заметил сторонние библиотеки на Nuget для FunScript:
FuncScript.TypeScript.Bindings.(lib|jquery)
но я не могу ссылаться на них в выражении "open [namespace]".
и, наконец, в конце программы должно быть что-то типа "сделать компоненты времени выполнения...". это также не определено
Ребята, у вас есть полный пример FunScript, с которого я могу начать? (Я уже много раз искал в Интернете, программы, которые я видел, не работали со мной)
3 ответа
К сожалению, проект все еще немного тонок в документации. Мы постараемся улучшить это в ближайшее время.
Теперь я обновил шаблон проекта FunScript Visual Studio, чтобы удалить зависимость диспетчера пакетов NuGet. От v1.1.0.15
Он должен работать в Visual Studio 2013. Примечание: вам может понадобиться собрать дважды, чтобы правильно восстановить пакеты NuGet.
Вы получаете только базовый компилятор F# в JS (и некоторые сопоставления провайдеров типов FSharp.Data) в основном пакете NuGet. Если вы хотите получить доступ к JavaScript через привязки TypeScript, вы должны добавить ссылки на упомянутые вами пакеты "Привязки".
Имена этих пакетов на самом деле не отражают никакого пространства имен в сборках. В настоящее время они импортируют типы в глобальное пространство имен (т. Е. Они должны просто стать доступными в 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-website. Это будет включать пошаговые руководства для сборки и развертывания с HashBang/FunScript.
У меня был плавный вход...
Использовал MS Visual Studio 2013 (профессиональный) с шаблоном проекта "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). И добавьте остальные файлы. Я использую в качестве основы некоторый код Зак Брея. Смотрите файл README по ссылке выше.
Должно быть 5-10 минут опыта для вас, если у вас установлена MS VS 2013. Я нахожусь в процессе представления большего количества примеров. Я рекомендую Funscript.
Согласно совету Зака выше, я создал рабочий (по крайней мере, время написания) пример проекта для OSX и Xamarin Studio:
https://github.com/mfrawley/Funny
Я нашел процесс установки абсолютно не интуитивно понятным, но теперь, когда он работает и видит множество доступных пакетов NuGet, я очень взволнован, чтобы увидеть, как эта вещь развивается.