如何使用FunScript真正"开始"

Zai*_*jaj 12 f# f#-3.0 funscript

我在尝试使用FunScript时遇到了麻烦,我真的很喜欢F# - > Javascript的想法,但是对于如何使用这些漂亮的技术的信息/文档的数量不断感到沮丧.

这是问题所在:

无法安装FunScript项目(无主机)模板,因为:"您需要Nuget已安装",当我尝试下载时,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
Run Code Online (Sandbox Code Playgroud)

虽然效果很好,但随后...当我看一个FunScript示例时,我open FunScript.TypeScript在程序中看到当我输入时不存在,因为它说TypeScript没有定义,并且查看示例FunScript.TypeScript提供了使用jQuery并与DOM交互的能力.没有它,我在这里无能为力

我确实注意到Nuget for FunScript上的第三方库,:

FuncScript.TypeScript.Bindings.(lib|jquery)
Run Code Online (Sandbox Code Playgroud)

但我无法在"open [namespace]"语句中引用它们.

最后,程序结束时必须有一个"运行时组件......".这也是'未定义'

你们有一个我可以开始的完整的FunScript示例吗?(我已经在网上搜索了很多,我看到的程序没跟我一起工作)

小智 14

对不起,该项目在文档方面仍然有点薄.我们会尽快改善这一点.

我现在更新了FunScript Visual Studio项目模板以删除NuGet Package Manager依赖项.From v1.1.0.15它应该适用于Visual Studio 2013. 注意:您可能需要构建两次才能正确还原NuGet包.

您只能在主NuGet包中获得基本的F#到JS编译器(以及一些FSharp.Data类型提供程序映射).如果要通过TypeScript绑定访问JavaScript,则必须添加对您提到的"绑定"包的引用.

这些包的名称实际上并不反映程序集中的任何名称空间.目前,他们将类型导入全局命名空间(即,它们应该在intellisense中可用而不打开任何命名空间).除非TypeScript包含模块,否则函数和类型将映射到相应的.NET命名空间.

例如,Globals.alert(message)在添加FunScript.TypeScript.Binding.libNuGet包之后应该进行类型检查.

请注意,我们FunScript.TypeScript将来可能会将这些定义全部移到命名空间中,以避免污染全局命名空间.

do Runtime.Run(components)示例中的调用实际上只是一个辅助方法.我们应该从示例中删除它,因为它让很多人感到困惑.您真正需要的唯一方法是Compiler.Compile(<@ main() @>, noReturn = true)编译引号并返回一串JavaScript.然后由用户决定使用此JavaScript(例如,将其放在托管页面中).

当我发布另一个名为HashBang的项目时,我将添加更多关于使用FunScript的文档,该项目利用FunScript构建可抓取的动态网站.这将包括使用HashBang/FunScript构建和部署的分步教程.