Fay:包含另一个Fay文件?

时间:2013-08-24 19:02:02

标签: fay

我有一个Fay文件,这是我的程序的核心,但是我需要一些帮助我的逻辑,例如替换子串的方法。根据我的理解,如果我需要直接从Hackage的许多Haskell库提供的这些方法,我不能使用那些Haskell库,但我必须在我的项目中复制粘贴代码。这就是我所做的,我在项目的一个新文件中将一个“替换”函数和MissingH库中的其他助手一起复制粘贴:Utils.hs。

那个Utils.hs编译没有问题与Fay。我也在我的主Fay文件中导入它,我得到主文件文件的JS文件没有问题。但是在运行时我收到以下错误:

ReferenceError: Utils$$36$ is not defined

我不认为Fay会在我的主JS文件中包含辅助文件中的代码,所以我在加载HTML中包含了两个JS文件。并且为了更加确定当我加载主文件时,加载了utils文件,我加载它:

$.getScript("Utils.js", function(){
    $.getScript("FayConfig.js");
});

但尽管如此,我仍然得到错误。我尝试使用“--library”编译Utils.hs,但它没有帮助。

所以我的问题是,我需要实现哪个设置,生成的JS将找到我放在另一个HS文件中的辅助函数,知道在编译时,Fay(显然)发现它们没有问题?有这样的在线设置的例子吗?我发现的大部分Fay用途都包含单个HS文件中的所有代码,尽管它们经常使用来自cabal的外部Fay代码,就像使用fay-jquery一样。在我的情况下,为这些简单的帮助者设置一个阴谋集团项目将是过度的。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的Fay(fay --version)?好像你使用的是旧版本 0.16忘记import Prelude不会发出任何警告,请参阅this closed ticket。所以升级fay和/或添加import Prelude

我们还在考虑在生成的输出中重命名运算符,以使这些错误消息更容易理解。

你不需要多次调用fay,fay会将所有依赖项输出到同一个js文件中。因此,在这方面使用cabal包没有区别。

希望这会有所帮助,否则请给我一种方法来重现这一点。