我在尝试使用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 for FunScript上的第三方库,即:
FuncScript.TypeScript.Bindings.(lib|jquery)
但我无法在“open [namespace]”语句中引用它们。
最后,程序结束时必须有“do Runtime components ...”。这也是'未定义'
你们有一个我可以开始的完整的FunScript示例吗? (我已经在网上搜索了很多,我看到的程序与我无关)
答案 0 :(得分:14)
抱歉,该项目在文档方面仍然有点薄弱。我们会尽快改善这一点。
我现在更新了FunScript Visual Studio Project Template以删除NuGet Package Manager依赖项。从v1.1.0.15
它应该适用于Visual Studio 2013. 注意:您可能需要构建两次才能正确恢复NuGet包。
您只能在主NuGet包中获得基本的F#到JS编译器(以及一些FSharp.Data类型提供程序映射)。如果要通过TypeScript绑定访问JavaScript,则必须添加对您提到的“绑定”包的引用。
这些包的名称实际上并不反映程序集中的任何名称空间。目前,他们将类型导入全局命名空间(即,它们应该在intellisense中可用而不打开任何命名空间)。除非TypeScript包含模块,否则函数和类型将映射到相应的.NET命名空间。
例如,Globals.alert(message)
应在添加FunScript.TypeScript.Binding.lib
NuGet包后进行类型检查。
请注意,我们将来可能会将这些定义全部移到FunScript.TypeScript
命名空间中,以避免污染全局命名空间。
示例中的do Runtime.Run(components)
调用实际上只是一个辅助方法。我们应该从示例中删除它,因为它让很多人感到困惑。您真正需要的唯一方法是Compiler.Compile(<@ main() @>, noReturn = true)
,它编译引号并返回一串JavaScript。然后由用户决定使用此JavaScript(例如,将其放在托管页面中)。
当我发布另一个名为HashBang的项目时,我将添加更多关于使用FunScript的文档,该项目使用FunScript构建可抓取的动态网站。这将包括使用HashBang / FunScript构建和部署的分步教程。
答案 1 :(得分:4)
我顺利进入......
使用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)上看到我的几个例子。 您需要做的就是从默认项目(FunScript - Not Hosted)中替换Program.fs。并添加其余文件。我使用Zach Bray代码作为基础。请参阅上面链接中的README文件。
如果您安装了MS VS 2013,则应该有5-10分钟的体验。 我正在提交更多示例。 我推荐Funscript。
答案 2 :(得分:0)
根据Zach的建议,我为OSX和Xamarin Studio创建了一个工作(至少写作时间)示例项目:
https://github.com/mfrawley/Funny
我发现安装过程绝对不直观,但现在它正在工作并且看到了大量的NuGet软件包,我很高兴看到这个东西如何发展。