我现在正在学习带有堆栈的hakyll静态站点生成器。
当我在我的Hakyll站点的目录中执行stack build
以重建site.hs
时,堆栈每次都会重建并复制/注册依赖项,如下所示:
$ stack --version
Version 1.6.5, Git revision 24ab0d6ff07f28276e082c3ce74dfdeb1a2ca9e9 (5514 commits) x86_64 hpack-0.20.0
$ grep -Ev '^[[:space:]]*#' stack.yaml | uniq
resolver: lts-11.4
packages:
- .
$ stack build
haddock-library-1.4.5: configure
haddock-library-1.4.5: build
haddock-library-1.4.5: copy/register
pandoc-2.1.2: configure
pandoc-2.1.2: build
pandoc-2.1.2: copy/register
pandoc-citeproc-0.14.3: configure
pandoc-citeproc-0.14.3: build
pandoc-citeproc-0.14.3: copy/register
hakyll-4.12.1.0: configure
hakyll-4.12.1.0: build
hakyll-4.12.1.0: copy/register
... and site.hs.compilation ...
这对我来说很奇怪,因为我从未改变过那些包裹。
即使对site.hs
进行非常小的更改,重建也需要很长时间。
为什么堆栈会重建这些包?有没有办法减少重建时间?
谢谢。
答案 0 :(得分:4)
这里讨论https://github.com/commercialhaskell/stack/issues/3899。这是由使用子库的较新版本的haddock触发的已知问题。有公关公开解决问题,但尚未合并。