我正在尝试设置 Yesod,同时为我的网站前端运行 Fay。它主要按我的预期工作,就像我写的任何 Fay 运行一样。问题是我在生成的 JS 中遇到了 Uncaught ReferenceError 。
这是相关JS的简短版本:
(function(){
var Data = {};Data.Data = {};var Fay = {}; ... lots of code ... Home.main = new Fay$$$(function(){return Fay$$_(Home.alert)(Fay$$list("test"));});
;
Fay$$_(Home.main);
})();
Fay$$_(Home.main); /* Uncaught ReferenceError: Home is not defined */
以及生成它的 Fay 代码:
module Home where
import Prelude
import Fay.FFI
import Language.Fay.Yesod
import SharedTypes
alert :: String -> Fay ()
alert = ffi "window.alert(%1)"
main :: Fay ()
main = alert "test"
我怀疑 yesod-fay 包正在添加额外的调用,但我不确定如何避免这种情况发生。https://github.com/fpco/yesod-fay/blob/master/Yesod/Fay.hs#L124是我认为可能涉及的功能。