12

我在尝试开始使用 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 库:

PM> Install-Package FunScript

效果很好,但后来。. . 当我查看 FunScript 示例时,我open FunScript.TypeScript在程序中看到当前不存在的程序,因为它说 TypeScript 未定义,并且查看示例 FunScript.TypeScript 提供了使用 jQuery 并与 DOM 交互的能力。所以没有它我什么都做不了

我确实注意到了 Nuget for FunScript 上的 3rd-party 库,即:

FuncScript.TypeScript.Bindings.(lib|jquery)

但我不能在“open [namespace]”语句中引用那些。

最后,程序末尾必须有一个“做运行时组件......”的东西。这也是“未定义”

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

4

3 回答 3

14

抱歉,该项目的文档仍然有点薄。我们将尽快改善这一点。

我现在更新了FunScript Visual Studio 项目模板以删除 NuGet 包管理器依赖项。从v1.1.0.15它应该可以在 Visual Studio 2013 上运行。注意:您可能需要构建两次才能正确恢复 NuGet 包。

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

这些包的名称实际上并不反映程序集中的任何命名空间。目前,它们将类型导入全局命名空间(即,它们应该在智能感知中可用,而无需打开任何命名空间)。除非 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 构建和部署的分步教程。

于 2013-11-24T11:52:30.977 回答
4

我顺利进入...

使用 MS Visual Studio 2013(专业版),带有香草“FunScript - 未托管”项目模板(Zach Bary 提供),可通过在线项目搜索找到。

然后添加相关的 FunScript 绑定包(通过 NuGet)。我为我的一些解决方案添加了:FunScript.TypeScript.Binding.jquerymobile 和 FunScript.TypeScript.Binding.phonegap

您可以在 GiHub ( https://github.com/ZachBray/FunScript/tree/master/src/samples/EasyGettingStarted ) 上看到我的几个示例。您需要做的就是从默认项目(FunScript - 未托管)中替换 Program.fs。并添加其余文件。我使用一些 Zach Bray 代码作为基础。请参阅上面链接中的 README 文件。

如果您安装了 MS VS 2013,对您来说应该是 5-10 分钟的体验。我正在提交更多示例。我推荐 Funscript。

于 2014-01-31T00:35:50.213 回答
0

根据上面 Zach 的建议,我为 OSX 和 Xamarin Studio 创建了一个工作(至少在写作时)示例项目:

https://github.com/mfrawley/Funny

我发现安装过程绝对不直观,但现在它正在工作并且看到大量可用的 NuGet 包,我很高兴看到这个东西是如何发展的。

于 2015-04-17T11:22:34.210 回答