开发者存储指南
如何移除旧 node_modules,又不丢失项目工作
node_modules 通常可以从可信的 manifest 和锁文件重建,但本地补丁、未发布包或不可用的 registry 可能让移除代价很高。请按大小和项目时间查找候选项,验证能否重建,并一次只处理一个项目。
macOS 自带方法
Terminal 可以查找依赖树,但范围过大的查找并删除命令非常危险。请把发现和移除分成两个步骤。
- 在可能的项目根目录中搜索 node_modules,并只报告大小,不要删除任何内容。
- 打开每个上级项目,确认 package manifest、锁文件、远程仓库和当前 working tree 状态。
- 移除前保留本地补丁、link 的包、生成资源和未发布依赖。
- 把一个确认无误的目录移入废纸篓,使用项目文档指定的包管理器重新安装,并运行验证命令。
什么时候适合使用 Mint
当依赖树散落在旧项目中,需要一份可审核清单时,Mint 会更有帮助。
- 扫描支持的项目位置,查找过期 node_modules 和其他包管理器产物。
- 在判断项目是否真的闲置前,比较路径、大小和最近使用时间。
- 对过期依赖清理规则执行 dry run,并在运行前检查每一个候选项。
- 把批准的目录移入废纸篓并保留日志回执,而不是运行无范围限制的递归删除。
边界与安全检查
能够重新安装,不等于已经备份。
- 确认准确的包管理器和锁文件;混用 npm、pnpm、Yarn 或 Bun 可能改变解析出的依赖树。
- 离线或已关闭的 registry 可能让旧依赖以后无法获取。
- 绝不要用未解析的 glob 或递归删除命令指向范围宽泛的主目录或 workspace 根目录。
常见问题
我可以删除所有 node_modules 文件夹吗?
不可以。活跃项目需要依赖,一些依赖树还可能包含本地修改或以后无法下载的包。请逐个项目验证。
删除 node_modules 会删掉源代码吗?
准确选择 node_modules 路径时不应删除源代码,但错误的递归命令可能会。请检查解析后的路径,并优先选择可恢复的移入废纸篓操作。
移除前应该确认什么?
检查 manifest、锁文件、包管理器版本、仓库状态、本地补丁、registry 可用性,以及项目的安装与测试命令。
先盘点闲置依赖树
扫描 node_modules,确认父项目和锁文件后再处理。