プログラムの心臓部であるFayファイルが1つありますが、ロジックにはヘルパーが必要です。たとえば、部分文字列を置き換えるメソッドです。私が理解していることから、Hackage から直接多くの Haskell ライブラリによって提供されるメソッドが必要な場合、それらの Haskell ライブラリを使用することはできませんが、コードをコピーしてプロジェクトに貼り付ける必要があります。それが私がしたことです。プロジェクトの新しいファイルである Utils.hs に、MissingH ライブラリの他のヘルパーと一緒に「置換」関数をコピーして貼り付けました。
その 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 の使用のほとんどは、すべてのコードが 1 つの HS ファイルに含まれていますが、fay-jquery のように、cabal からの外部 Fay コードを使用することがよくあります。私の場合、これらの単純なヘルパーのためだけにカバール プロジェクトをセットアップするのはやり過ぎです。