如何防止堆栈为每个新项目下载 GHC?

How to prevent stack from downloading GHC for every new project?

如何防止堆栈为每个新项目下载 GHC?

每次我使用 stack 创建一个新项目然后构建或执行代码时,stack 都会为我安装一个新的 GHC。这不仅是等待这么长时间等待下载一个巨大的图像(在 GFW 之后,xKib/s)的无聊,而且对我可怜的 128G SSD Macbook Pro 来说也是一个space 灾难。我该如何解决这个问题?

$ stack exec blah
Preparing to install GHC to an isolated location.
This will not interfere with any system-level installation.
ghc-8.4.4:   15.98 KiB / 220.05 MiB (  0.01%) downloaded...^C

只需找到 $HOME/.stack.yaml 并添加:

# Turn on system GHC
system-ghc: true

和运行再次执行相同的命令。

如果您使用的 stack.yaml 需要一些您尚未通过堆栈安装的 ghc 版本,Stack 只会安装新的 ghc。一旦stack安装了ghc-8.4.4,例如,它不会重新安装这个版本的ghc。

那么,我认为解决方案是确保您对所有项目使用相同的解析器,以便该堆栈仅安装一个 ghc 版本。