Как действительно начать работу с 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, я очень взволнован, чтобы увидеть, как эта вещь развивается.

Другие вопросы по тегам