开发者存储指南

如何移除旧 node_modules,又不丢失项目工作

node_modules 通常可以从可信的 manifest 和锁文件重建,但本地补丁、未发布包或不可用的 registry 可能让移除代价很高。请按大小和项目时间查找候选项,验证能否重建,并一次只处理一个项目。

macOS 自带方法

Terminal 可以查找依赖树,但范围过大的查找并删除命令非常危险。请把发现和移除分成两个步骤。

  1. 在可能的项目根目录中搜索 node_modules,并只报告大小,不要删除任何内容。
  2. 打开每个上级项目,确认 package manifest、锁文件、远程仓库和当前 working tree 状态。
  3. 移除前保留本地补丁、link 的包、生成资源和未发布依赖。
  4. 把一个确认无误的目录移入废纸篓,使用项目文档指定的包管理器重新安装,并运行验证命令。

什么时候适合使用 Mint

当依赖树散落在旧项目中,需要一份可审核清单时,Mint 会更有帮助。

  • 扫描支持的项目位置,查找过期 node_modules 和其他包管理器产物。
  • 在判断项目是否真的闲置前,比较路径、大小和最近使用时间。
  • 对过期依赖清理规则执行 dry run,并在运行前检查每一个候选项。
  • 把批准的目录移入废纸篓并保留日志回执,而不是运行无范围限制的递归删除。

边界与安全检查

能够重新安装,不等于已经备份。

  • 确认准确的包管理器和锁文件;混用 npm、pnpm、Yarn 或 Bun 可能改变解析出的依赖树。
  • 离线或已关闭的 registry 可能让旧依赖以后无法获取。
  • 绝不要用未解析的 glob 或递归删除命令指向范围宽泛的主目录或 workspace 根目录。

常见问题

我可以删除所有 node_modules 文件夹吗?

不可以。活跃项目需要依赖,一些依赖树还可能包含本地修改或以后无法下载的包。请逐个项目验证。

删除 node_modules 会删掉源代码吗?

准确选择 node_modules 路径时不应删除源代码,但错误的递归命令可能会。请检查解析后的路径,并优先选择可恢复的移入废纸篓操作。

移除前应该确认什么?

检查 manifest、锁文件、包管理器版本、仓库状态、本地补丁、registry 可用性,以及项目的安装与测试命令。

先盘点闲置依赖树

扫描 node_modules,确认父项目和锁文件后再处理。

扫描闲置依赖