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

问题描述 投票:1回答:1

我想输出静态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中看到类似的标志。

有可能做我想要的吗?或者我将不得不创建自己的脚本来为我做这个(调用堆栈构建,然后手动输出文件)?

haskell cabal haskell-stack
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.