使用Cabal或Stack构建时是否可以在bin中输出静态文件?

时间:2019-04-12 20:24:53

标签: haskell cabal haskell-stack

我想在我的构建输出旁边输出静态html文件(允许将这些文件访问Haskell程序)。

这是我当前的项目结构:

MyProject/FrontEnd -- contains static html, js and css files.
MyProject/Backend -- contains the stack Haskell project

我希望当我在Backend目录中运行stack build时,它既可以构建Haskell项目,又可以复制Frontend目录并将其与可执行文件一起放入构建输出中。

我对Cabal或Stack并不十分熟悉,但是我大部分时间都在Cabal文档中查看,发现有一个data-dir参数,看起来像我想要的一样,但是即使添加: data-dir: ..\Frontend在我的阴谋档案中,收到以下警告: data-dir: ..\Frontend' is a relative path outside of the source tree. This will not work when generating a tarball with 'sdist'.并且文件不显示在输出中。

我在Stack中没有看到类似的标志。

可以做我想做的事吗?还是我将不得不创建自己的脚本来为我执行此操作(调用堆栈构建,然后手动输出文件)?

1 个答案:

答案 0 :(得分:1)

您可以使用file-embed包使用模板Haskell将文件或目录的内容直接嵌入到可执行文件中。 wai-app-static使用它来创建一个自包含的静态文件服务器(如果需要)。