如何用Haskell Stack清理项目级GHC、依赖及构建文件?
清理Stack相关内容的内置命令
好问题!Stack其实提供了一系列内置命令来帮你清理不同范围的内容,不用手动去删目录,整理一下不同场景对应的方法:
项目本地层面的清理
如果你只想清理当前项目的构建产物和相关缓存:
stack clean:这是最常用的基础清理命令,会自动删除项目根目录下的.stack-work文件夹(里面存着项目的构建输出、中间文件等),快速释放项目本地的磁盘空间。stack clean --full:比普通清理更彻底,除了.stack-work,还会清理项目依赖的构建缓存,适合你想完全重置项目构建状态的场景。
全局层面的清理
如果要处理~/.stack下的GHC、快照、全局缓存这些内容:
stack purge:这个命令会一次性清理全局范围内的非必要文件,包括~/.stack/programs里的GHC安装包、~/.stack/snapshots里的快照依赖、~/.stack/setup-exe-cache里的缓存文件等。执行后,下次构建项目需要重新下载GHC和所有依赖,适合你想彻底清理Stack全局缓存的情况。stack ghc remove <GHC版本号>:如果你只想删掉某个特定版本的GHC(比如不再使用的旧版本),可以用这个命令,比如stack ghc remove 9.2.8,只会移除指定版本,不会影响其他GHC版本和快照。stack snapshot delete <快照ID>:如果要清理某个特定的快照(比如某个旧的LTS版本),用这个命令,比如stack snapshot delete lts-20.15,会删除对应快照的所有依赖缓存。stack setup --clean:这个命令会清理~/.stack/programs下的GHC安装文件,执行后下次运行stack setup会重新下载并安装所需的GHC版本。
这样根据你的需求选择对应的命令就好,不用手动去逐个删除目录啦。
内容的提问来源于stack exchange,提问作者luceat-lux-vestra
相关产品推荐
相关产品推荐

