我想在我的构建输出旁边输出静态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中没有看到类似的标志。
可以做我想做的事吗?还是我将不得不创建自己的脚本来为我执行此操作(调用堆栈构建,然后手动输出文件)?
答案 0 :(得分:1)
您可以使用file-embed
包使用模板Haskell将文件或目录的内容直接嵌入到可执行文件中。 wai-app-static
使用它来创建一个自包含的静态文件服务器(如果需要)。