我想输出静态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
参数,看起来像我想要的那样,但即使在我的cabal文件中添加: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中看到类似的标志。
有可能做我想要的吗?或者我将不得不创建自己的脚本来为我做这个(调用堆栈构建,然后手动输出文件)?
您可以使用file-embed
包使用Template Haskell将文件或目录的内容直接嵌入到您的可执行文件中。例如,wai-app-static
使用它来创建一个自包含的静态文件服务器(如果请求)。