2

假设我正在构建一个使用 haskell 作为服务器端和客户端代码的 Web 应用程序。在构建阶段,我想ghc用一些 haskell to js transpiler 编译服务器端代码和客户端代码。

haskell 转译器工具公开了一个我需要提供文件的可执行.hs文件,它将编译为.js文件。如何在 cabal 中指定在构建阶段运行外部程序?我可以看到,该UserHooks字段buildHook具有返回类型IO(),所以理论上我可以使用例如 shelly 库来执行 shell 代码来运行转译器,但我不知道这是否是最干净的解决方案。

4

1 回答 1

1

这是我写的关于解决相同问题的帖子。

使用自定义安装文件通常是个坏主意,因为没有办法处理它的依赖关系,除非你先安装这些依赖关系,否则你甚至不能sdist.

我发现有一个可选的命令行选项可以很好地在网络服务器启动时预编译代码。

另一种选择是拥有一个编译两者的makefile。

于 2014-06-09T10:47:53.017 回答