我正在研究一个Haskell项目(Happstack服务器+ Blaze HTML /前端作为主库),我想添加一个静态数据目录.
看起来你可以使用自动生成的Path_<package_name>模块使用Cabal .所以在我的例子中,调用了包new-website,因此应该调用该模块Paths_new_website.
链接到Cabal docs re:自定义包的Paths_pkgname模块.
从命令行和使用cabal repl,我试图确认我将有权访问该Paths_模块.但是,我发现Paths_new_websiteCabal在运行时没有导入该模块cabal_repl.
有没有人有这方面的经验,得到一个挑剔的Paths_模块加载我的包?我怀疑这可能是Main.hs(主要源文件)与上下文之间的词汇范围问题cabal_repl......
Paths_*模块仅在构建期间由 Cabal 生成。如果您使用GHCior运行包,cabal repl那么它们将根本不存在,并且您的代码将因“无法找到模块”错误而失败。
但是,有一个偷偷摸摸的开发模式技巧:只需构建自己的Paths_*模块并将其放在haskell-source-dir. 在开发过程中,GHCi将加载该模块,您可以调整其导出的符号以使您的开发环境正常运行。在构建过程中,Cabal 将使用自己的模块覆盖您的模块,并考虑构建Paths_*模块所需的最终信息。
因此,在这种特殊情况下,只需创建一个文件src/Paths_stackbuilders.hs并为其提供datadir.
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |