storage-analyzer: pnpm store 被错误标记为可直接删除,会导致所有项目依赖断裂

Author: jinzheioCreated Jun 2, 2026Updated Jun 2, 2026

问题

storage-analyzer/SKILL.md 中,pnpm store~/Library/pnpm/store)被放在 可自动清理级别,并提供了 rm -rf ~/Library/pnpm/store 的删除命令。

但这实际上是不安全的

原因

pnpm store 不是普通的"下载缓存"(如 npm _cacache 或 uv cache),而是所有项目 node_modules 的硬链接源

  • pnpm 安装依赖时,node_modules 里的包是硬链接到全局 store 的
  • 如果直接 rm -rf ~/Library/pnpm/store,所有项目的 node_modules 会全部变成死链接
  • 结果是:所有基于 pnpm 的项目当场无法运行,必须逐一重新 pnpm install

建议修复

  1. 不要提供 rm -rf 整个 store 的命令,也不要把整个 store 路径放进 trash_paths(避免网页一键删除按钮误触)
  2. 唯一安全的清理方式是 pnpm store prune,它只删除未被任何项目引用的包
  3. 如果要在网页上提供删除按钮,只放 store 内明确安全的子目录(如 .toolsglobal

对比:其他包管理器的缓存性质

工具 路径 性质 直接删除是否安全
npm ~/.npm/_cacache 副本缓存 ✅ 安全
uv ~/.cache/uv 副本缓存 ✅ 安全
pnpm ~/Library/pnpm/store 硬链接源 ❌ 危险

环境

  • macOS (Apple Silicon)
  • pnpm 9.x
  • storage-analyzer 当前 main 分支