JavaScript 工具链

npm / pnpm / Yarn / Bun 缓存:多项目机器上的隐形重复占用

包管理器为了加速安装会积极缓存。在多项目、多工具链并存的 Mac 上,即使项目删掉了,缓存也可能持续占用大量空间。

更新于:

阅读时长: 6 分钟

为什么会悄悄变大

依赖 tarball 和解压后的包数据会被长期保留。不同项目、不同包管理器、不同试验分支叠加后,缓存很容易出现大量重复和历史残留。

Free Mac Space 如何定位

Free Mac Space 提供专门的 Node Modules 分类,覆盖 ~/.npm/_cacache、~/Library/pnpm/store、~/.pnpm-store、~/.yarn/berry/cache、~/.yarn/cache、~/.bun/install/cache 以及相关 ~/.cache 目录。

Free Mac Space 如何帮助清理

你可以在一个界面中按体积和最近修改时间筛选缓存目录再清理。流程仍然包含根路径校验、受保护路径检查、回收站优先和本地审计记录。

安全边界

应用把通用缓存与语言工具链缓存拆开扫描,减少跨分类误删风险,让你的清理决策更聚焦、更可解释。

Free Mac Space 扫描路径

  • ~/.npm/_cacache
  • ~/Library/pnpm/store
  • ~/.pnpm-store
  • ~/.yarn/berry/cache
  • ~/.yarn/cache
  • ~/.bun/install/cache
  • ~/.cache/pnpm

建议的月度检查步骤

  • 按目录体积排序,优先处理长期未使用的缓存仓库。
  • 本周仍在高频开发的项目可暂缓清理对应缓存。
  • 再次扫描确认回收量是否达到预期。

操作步骤(HowTo)

  1. 1. 识别 JavaScript 工具链 的增长来源

    依赖 tarball 和解压后的包数据会被长期保留。不同项目、不同包管理器、不同试验分支叠加后,缓存很容易出现大量重复和历史残留。

  2. 2. 确认扫描覆盖路径

    Free Mac Space 提供专门的 Node Modules 分类,覆盖 ~/.npm/_cacache、~/Library/pnpm/store、~/.pnpm-store、~/.yarn/berry/cache、~/.yarn/cache、~/.bun/install/cache 以及相关 ~/.cache 目录。 重点路径:~/.npm/_cacache、~/Library/pnpm/store、~/.pnpm-store、~/.yarn/berry/cache、~/.yarn/cache、~/.bun/install/cache、~/.cache/pnpm。

  3. 3. 先看安全边界再执行动作

    应用把通用缓存与语言工具链缓存拆开扫描,减少跨分类误删风险,让你的清理决策更聚焦、更可解释。

  4. 4. 按先审查后清理流程执行

    你可以在一个界面中按体积和最近修改时间筛选缓存目录再清理。流程仍然包含根路径校验、受保护路径检查、回收站优先和本地审计记录。

  5. 5. 复核动作 1

    按目录体积排序,优先处理长期未使用的缓存仓库。

  6. 6. 复核动作 2

    本周仍在高频开发的项目可暂缓清理对应缓存。

  7. 7. 复核动作 3

    再次扫描确认回收量是否达到预期。

常见问题

  • JavaScript 工具链 这类占用通常来自哪里?

    主要来源包括:npm 缓存、pnpm store、Yarn 缓存、Bun 安装缓存。依赖 tarball 和解压后的包数据会被长期保留。不同项目、不同包管理器、不同试验分支叠加后,缓存很容易出现大量重复和历史残留。

  • 这篇文章建议重点查看哪些路径?

    建议优先检查这些路径:~/.npm/_cacache、~/Library/pnpm/store、~/.pnpm-store、~/.yarn/berry/cache、~/.yarn/cache、~/.bun/install/cache、~/.cache/pnpm。Free Mac Space 提供专门的 Node Modules 分类,覆盖 ~/.npm/_cacache、~/Library/pnpm/store、~/.pnpm-store、~/.yarn/berry/cache、~/.yarn/cache、~/.bun/install/cache 以及相关 ~/.cache 目录。

  • 如何在不增加误删风险的前提下处理?

    你可以在一个界面中按体积和最近修改时间筛选缓存目录再清理。流程仍然包含根路径校验、受保护路径检查、回收站优先和本地审计记录。 应用把通用缓存与语言工具链缓存拆开扫描,减少跨分类误删风险,让你的清理决策更聚焦、更可解释。

  • 月度复查时应该怎么执行?

    按目录体积排序,优先处理长期未使用的缓存仓库。;本周仍在高频开发的项目可暂缓清理对应缓存。;再次扫描确认回收量是否达到预期。

继续执行对应方案

如果你已完成阅读,可直接进入「npm / pnpm / Yarn / Bun 缓存清理」按步骤执行。

查看对应场景方案

更多隐蔽占用案例

Xcode

Xcode 的 DerivedData 和 DeviceSupport:最常见的隐藏巨头

Xcode 会在构建产物和模拟器/设备支持文件里悄悄累积几十 GB。本文讲清楚它为什么膨胀,以及如何在不影响当前项目的前提下清理。

阅读文章

Docker

Docker Desktop 虚拟磁盘:项目结束了,空间却还在涨

Docker 镜像层、构建缓存和 VM 磁盘文件都在受管目录中,平时不容易在 Finder 里看清楚,但体积会增长得很快。

阅读文章

Homebrew

Homebrew 缓存目录:安装很快,历史缓存更快变大

Homebrew 会保留下载包和元数据缓存,版本升级后仍可能长期存在,是非常典型的“看不见但可安全处理”的空间来源。

阅读文章