开发者磁盘清理

npm、pnpm、Yarn 缓存怎么清理,不影响项目

分清全局缓存和项目里的 node_modules,用官方命令清理 npm、pnpm、Yarn 缓存,并避开几个容易踩的坑。

发布于 2026/10/29作者 浣熊管家团队

装的依赖越多,包管理器在你的用户目录里攒下的缓存就越大,几个 GB 到几十 GB 都很常见。这些缓存设计上就可以删除,删掉后最多是下次安装时重新下载;不过有几种情况,它们并不只是缓存。下面按 npm、pnpm、Yarn 逐个说明位置、命令和注意事项。

缓存和 node_modules 不是一回事

全局缓存是包管理器下载过的软件包的本地副本,所有项目共用,删除后不会改动项目文件。node_modules 是每个项目实际安装的依赖,删除后项目要重新安装才能运行。这篇文章讲前者;旧项目里的 node_modules 怎么批量清理,见旧项目构建目录的批量清理。

缓存都放在哪里

工具macOS 上的默认位置
npm~/.npm/_cacache,npx 临时安装的工具在 ~/.npm/_npx
pnpm存储在 ~/Library/pnpm/store,元数据缓存在 ~/Library/Caches/pnpm
Yarn 1~/Library/Caches/Yarn
Yarn 2 及以上默认启用全局缓存,位于 ~/.yarn/berry/cache
Bun~/.bun/install/cache
Corepack~/.cache/node/corepack

如果你改过配置,以各工具命令报告的位置为准,下文会给出查看方法。

清理前要知道的几点

  • 会重新下载:清掉缓存后,下次安装要重新从网络获取。离线开发、网络慢或者依赖私有源的场景,清理前先想好。
  • pnpm 的空间是共享的:在 APFS 磁盘上,pnpm 默认用写时复制的克隆把存储里的文件放进项目,项目的 node_modules 和存储共用同一批数据块。只删其中一边,实际释放的空间都可能小于显示的大小。
  • 全局安装可能依赖存储:按 pnpm 文档,较新版本中用 pnpm add -g 安装的全局包默认通过存储目录下的 links 运行,整个删掉存储后要重新安装这些全局工具。Bun 的 globalStore(默认关闭)开启后也一样,相关项目需要重新运行 bun install。
  • Yarn PnP 项目直接读缓存:使用 Plug'n'Play 的 Yarn 项目没有 node_modules,依赖就是缓存里的 zip 文件。清掉缓存后,要先运行 yarn install 才能启动项目。

手动清理命令

npm

# 查看缓存根目录,默认是 ~/.npm
npm config get cache
du -sh ~/.npm/_cacache ~/.npm/_npx
# 校验缓存并回收无用数据,不会清空
npm cache verify
# 清空下载缓存 _cacache,项目里的 node_modules 不受影响
npm cache clean --force
# 删除 npx 临时安装的工具,下次运行时会重新下载
rm -rf ~/.npm/_npx

npm 的缓存会自我修复,官方文档明确说,除了腾出磁盘空间,没有必要清空它。遇到安装报错时,先试 npm cache verify。

pnpm

# 查看当前存储位置,例如 ~/Library/pnpm/store/v10
pnpm store path
du -sh "$(pnpm store path)"
# 只删除没有任何项目引用的包
pnpm store prune
# 元数据缓存可以直接删除,pnpm 会按需重新下载
rm -rf ~/Library/Caches/pnpm

pnpm 文档说明,pnpm store prune 不会影响你的项目,建议偶尔运行、不要太频繁,因为刚删掉的包可能很快又要用到。pnpm 每块磁盘使用一个存储:项目放在外接磁盘上时,存储通常在那块磁盘根目录的 .pnpm-store,在该项目里运行 pnpm store path 就能看到。

Yarn

Yarn 1 和 Yarn 2 及以上的命令不同,先用 yarn --version 确认当前目录下生效的版本。

# Yarn 1:查看并清空全局缓存
yarn cache dir
yarn cache clean
# Yarn 2 及以上:在使用该版本的项目目录中运行,只清空全局缓存
yarn cache clean --mirror

yarn cache clean --all 会同时删除当前项目的本地缓存。如果项目把 .yarn/cache 提交进了仓库(零安装),不要在这个项目里用 --all。

Bun 和 Corepack

# 显示 Bun 的全局缓存位置
bun pm cache
# 清空 Bun 的全局缓存
bun pm cache rm
# 删除 Corepack 下载的包管理器版本,下次使用时重新下载
rm -rf ~/.cache/node/corepack

用浣熊管家清理

深度清理的 标准扫描 会检查这些缓存的默认位置,按所在目录分在两个类别中:

  • 开发工具:npm 下载缓存、npx 临时工具缓存、Bun 软件包缓存。
  • 用户缓存文件:pnpm 存储缓存(包括存储和元数据缓存)、Yarn 下载缓存(Yarn 1 和 Yarn 2 及以上的全局缓存)、node-gyp 构建缓存,以及 Corepack、Electron 等下载的 Node.js 工具链缓存。这些条目涉及 ~/Library/Caches 下的目录,所以归在这里。

智能推荐 会预先勾选 npm、npx 和 node-gyp 这几项;pnpm 存储、Yarn、Bun 和 Node.js 工具链缓存需要你手动勾选。浣熊管家清理时会删除整个缓存或存储目录,效果相当于清空,而不是像 pnpm store prune 那样只删未被引用的包。如果你依赖 pnpm 的全局安装,或者有使用 PnP 的 Yarn 项目,请先读上面的注意事项,再决定要不要勾选。

说明

浣熊管家只检查默认位置,改过路径的缓存和其他磁盘上的 pnpm 存储不会被找到。项目里的 node_modules 归在 项目构建产物 类别,不会被预先勾选。清理会直接删除,不进入废纸篓,结果记录在操作历史中。

想看看这些缓存在你的 Mac 上有多大,可以下载浣熊管家运行一次扫描,扫描本身不会删除任何内容。下面的演示窗口使用示例数据,其中的条目、类别和勾选状态仅作示意。

深度清理

Macintosh HD32.76 GB 可用
发现 33 项可清理内容估算可清理79.3 GB
系统缓存
已选 / 发现可清理554 MB/ 554 MB全选
旧的诊断日志低风险系统和应用留下的旧诊断报告 313 MB
长期未使用的系统缓存低风险当前用户超过 7 天未更新的系统缓存 241 MB
旧临时文件低风险系统和应用使用时留下的临时文件 394 KB
已选择项目21 项预计释放空间41.5 GB
选择方式
交互演示 · 所有数据均为模拟数据

常见问题

清理缓存后,项目还能正常运行吗?

能。依赖已经安装在各项目的 node_modules 里,删除全局缓存不会改动它们,下次安装时多花点下载时间而已。例外是上面提到的 Yarn PnP 项目,以及依赖存储运行的 pnpm 全局工具。

多久清一次合适?

没有必要定期清空。磁盘紧张时清一次,或者每隔几个月运行一次 pnpm store prune、npm cache verify 就够了。

为什么删掉 pnpm 存储后,空间没有减少那么多?

因为还在使用的 node_modules 仍然引用同一批数据块。把不再使用的旧项目的 node_modules 一起清掉,这部分空间才会真正释放。

相关文章