misonoteApp Center

pnpm store 占用好几个 GB 能删吗?Mac 上安全清理方法

删前看一眼可能还有用的数据;Thermo 默认移到废纸篓,后悔还能找回。

位置

  • ~/Library/pnpm/store
  • ~/.local/share/pnpm/store
  • ~/.pnpm-store

这是什么

pnpm 把所有下载过的包按内容存在一个全局的 store 里,各项目的 node_modules 并不复制文件,而是从 store 硬链接过来。这样多个项目共用同一份依赖,比 npm 节省空间。

为什么会这么大

store 保存了你在任何项目里装过的每个包版本。项目删了、依赖升级了,旧版本仍然留在 store 中,除非手动清理。

能删吗?删了会怎样

可以删,但需要确认。由于是硬链接,直接删除 store 并不会让已有项目的 node_modules 立刻损坏,但 pnpm 会发现 store 不完整,之后需要在用到的项目里重新运行 pnpm install,并重新下载依赖。更稳妥的做法是先用 pnpm 自带的 prune 命令,它只删除没有任何项目引用的包。

小提示

因为是硬链接,Finder 和 du 统计到的 store 大小与项目 node_modules 有重叠,实际可释放的空间可能比看起来少。

先看看占了多少

du -sh "$HOME/Library/pnpm/store" "$HOME/.local/share/pnpm/store" "$HOME/.pnpm-store" 2>/dev/null

用它自带的命令清理

pnpm store prune

手动删除

在「终端」里执行。删除不可撤销,执行前请确认路径。

rm -rf "$HOME/Library/pnpm/store"
rm -rf "$HOME/.local/share/pnpm/store"
rm -rf "$HOME/.pnpm-store"