`stack clean`和删除`.stack-work`目录有什么区别?

时间:2017-01-10 17:11:08

标签: haskell haskell-stack

1上下文

我参与了一个涉及大量C位和FFI的Haskell项目。所以我发现自己经常运行并重新运行像

这样的命令
$ stack build
$ stack build --force-dirty
$ stack clean
$ rm ./.stack-work

一遍又一遍,以便将C位正确链接到Haskell位。换句话说,有时候只有在运行stack build时才能正常工作,有时他们不会(在这种情况下,我不得不反复循环执行上述命令,直到我的项目正确构建)。 / p>

这意味着我没有正确理解stack(通过ghc)在组装Haskell位之前如何组装C位。所以这里有一个问题可以帮助我开始清理我的困惑:

2问题

运行stack clean和删除.stack-work目录的内容之间是否有任何值得注意的区别?是否需要删除.stack-work目录作为确保您实际运行干净构建的良好预防措施?

1 个答案:

答案 0 :(得分:0)

正如您在此处阅读消息来源所看到的那样:

https://github.com/commercialhaskell/stack/blob/master/src/Stack/Clean.hs

有两个级别,全部和浅部。我认为浅薄似乎是默认的。它似乎能够清理特定的软件包,或者如果你根本不提供任何选项,它将清除除本地软件包之外的所有内容。