
.pnpm-store 是什么?
.pnpm-store 是 pnpm 包管理器 的核心目录,全称是 “package store”(包存储库),它的核心作用是实现 pnpm 最核心的特性——硬链接/符号链接复用依赖包,从而大幅节省磁盘空间、提升安装速度。
具体作用
- 举例:你有 5 个项目都用 react@18.2.0,.pnpm-store 中只存 1 份 react@18.2.0,5 个项目的 node_modules 都链接到这一份,磁盘占用从 5 份变为 1 份。
.pnpm-store 的位置
- 全局级:默认在系统目录(比如 macOS/Linux: ~/.pnpm-store,Windows: %USERPROFILE%\\.pnpm-store);
- 项目级:如果项目中启用了 store-dir 本地配置,可能会在项目根目录生成 .pnpm-store(较少见,通常是全局存储)。
可以删除吗?
结论:可以删除,但删除后会有明确的影响,需根据场景判断。
1. 允许删除的场景(无风险)
- 你想清理磁盘空间,且能接受后续项目重新下载依赖;
- 怀疑 .pnpm-store 中存在损坏的包(比如安装依赖时报错),删除后重新安装可修复;
- 项目已不再维护,或你确定后续不会再安装该项目的依赖。
2. 删除后的影响
- 所有依赖该存储库的项目,再次执行 pnpm install 时,会重新下载所有依赖包(耗时变长,磁盘占用暂时增加,直到重新复用);
- 不会影响项目的代码、配置或 package.json/pnpm-lock.yaml 文件(锁文件还在,重新安装会恢复到原版本);
- 若删除的是项目级 .pnpm-store,仅影响当前项目;若删除全局 .pnpm-store,会影响所有使用 pnpm 的项目。
3. 推荐的删除方式(而非手动删文件夹)
手动删除可能残留缓存,推荐用 pnpm 自带命令清理,更安全:
# 清理全局 .pnpm-store 中未被任何项目引用的包(推荐,保留有用的)
pnpm store prune
# 彻底清空全局 .pnpm-store(谨慎,会删除所有存储的包)
pnpm store clear
# 查看 .pnpm-store 的位置和大小(方便判断)
pnpm store path
pnpm store status




