我有一個Fay文件,這是我的程序的核心,但是我需要一些幫助我的邏輯,例如一個方法來取代子字符串。據我所知,如果我需要直接從Hackage提供的許多Haskell庫的方法,我不能使用這些Haskell庫,但我必須將代碼複製粘貼到我的項目中。所以這就是我所做的,我在我的項目中的一個新文件中複製了一個「替換」函數和MissingH庫中的其他助手:Utils.hs。Fay:包含另一個Fay文件?
Utils.hs編譯沒有問題與費伊。此外,我將它導入到我的主要Fay文件中,併爲主項目文件獲取一個JS文件,沒有任何問題。然而,在運行時,我得到以下錯誤:
ReferenceError: Utils$$36$ is not defined
我不認爲菲將包括來自於我的主要JS文件輔助文件中的代碼,所以我包括在加載HTML兩個JS文件。而爲了讓更加確信,當我加載主文件,該utils的文件被加載,我加載像:
$.getScript("Utils.js", function(){
$.getScript("FayConfig.js");
});
但儘管如此我仍然得到錯誤。我試着用「--library」編譯Utils.hs,但它沒有幫助。
所以我的問題是,我需要實現哪種設置,生成的JS會找到我放在另一個HS文件中的幫助函數,知道在編譯時,Fay(顯然)發現它們沒有問題?網上有這樣的設置的例子嗎?大部分Fay使用我發現的所有代碼都在單個HS文件中,儘管他們經常使用來自cabal的外部Fay代碼,就像fay-jquery一樣。在我的情況下,爲這些簡單的助手建立一個cabal項目將是矯枉過正的。
我在0.16之前使用了一個小小的git checkout。我應該更新到hackage或git上的最新版本嗎?一旦我更新並重新測試,我會在這裏更新信息。很高興知道它在一個文件中。 –
0.16是在hackage上,所以無論你喜歡什麼! –
是的,你是對的。只需升級fay並添加導入前綴到新的Fay模塊我包括修復了這個問題:-) –