使用各种标志构建堆栈缓存

Stack cache builds with various flags

我有两个不同的构建命令用于我的项目

stack build -j8 --profile

stack build -j8  --ghc-options -DVERBOSE_SOLVING

我的项目中有数百个文件。每当我从一个命令更改为另一个命令时,一切都会重建。有没有办法保持两者的构建增量?

您可以通过 --work-dir 告诉 stack 在何处保存缓存。默认为 <project root>/.stack-work,但您可以为不同的构建模式指定单独的目录:

stack build -j8 --profile --work-dir .stack-work-profile

stack build -j8 --ghc-options -DVERBOSE_SOLVING --work-dir .stack-work-verbose-solving

我认为没有办法让 stack 根据标志自动找出不同的缓存。如果你真的需要这个,你可以编写一个脚本来获取标志组合的散列并将工作目录重定向到.stack-work-<hash>或其他东西。