我有一个 Fay 文件,它是我的程序的核心,但是我需要一些帮助来实现我的逻辑,例如替换子字符串的方法。据我了解,如果我需要Hackage的许多Haskell库直接提供的方法,我不能使用那些Haskell库,但我必须将代码复制粘贴到我的项目中。所以这就是我所做的,我将“替换”函数与 MissingH 库中的其他助手一起复制粘贴到我项目的一个新文件中:Utils.hs。
Utils.hs 在 Fay 编译时没有问题。此外,我将它导入到我的主 Fay 文件中,并且我得到了一个主项目文件的 JS 文件,没有问题。但是在运行时我收到以下错误:
ReferenceError: Utils$$36$ is not defined
我认为 Fay 不会在我的主 JS 文件中包含辅助文件中的代码,因此我将两个 JS 文件都包含在加载 HTML 中。为了更加确定当我加载主文件时,utils文件被加载,我像这样加载它:
$.getScript("Utils.js", function(){
$.getScript("FayConfig.js");
});
但尽管如此,我仍然得到错误。我尝试使用“--library”编译 Utils.hs,但没有帮助。
所以我的问题是,我需要哪种设置来实现生成的 JS 将找到我放在另一个 HS 文件中的辅助函数,知道在编译时,Fay(显然)可以毫无问题地找到它们?网上有这种设置的例子吗?我发现的大多数 Fay 使用都将所有代码都放在一个 HS 文件中,尽管它们经常使用来自 cabal 的外部 Fay 代码,例如 fay-jquery。就我而言,仅仅为这些简单的助手建立一个阴谋集团项目将是矫枉过正。