批量删除 node_modules 文件夹
在单仓项目内,如何批量删除各个子项目以及根项目的 node_modules 依赖?有时候需要重装依赖的。
最佳实践——rimraf 的 glob 语法
这是目前(2025-5-4)踩坑下来的最佳实践。
实测发现,使用显性的 -g 指令可以用 glob 语法完成匹配并删除。
在 window 系统内,加上单引号。
bash
rimraf -g '**/{node_modules,package-lock.json,pnpm-lock.yaml,yarn.lock}'警告
注意,即使在 node 内运行命令,也要增加单引号。
踩坑历史
以下内容全都是之前踩坑的记录,如果你也有类似的思考过程,也可以来对照看看。反正我现在就用rimraf 的 glob 语法来完成 node_modules 的批量删除了。
pnpm 的 -r 方案
bash
pnpm -r exec rm -rf node_modules- 删除前
详情

- 删除后
详情

确实有文件被删除了。本方案仍旧有一些缺点:
基于工作区的命令,而不是面向整个项目的命令
pnpm -r xxx 命令是 --recursive 的简写,指的是遍历工作区,在工作区内执行命令。现在的命令只能面向工作区,却忽略了项目根目录,还是有点缺漏,不方便。
不得不在 git bash 界面内执行
命令 rm -rf node_modules 直接在 vscode 提供的 powershell 终端内,不能直接运行的,只能在 git bash 内执行命令。
rimraf 匹配全部包的方案
json
{
"scripts"{
"clearAllNm": "rimraf node_modules pnpm-lock.yaml && rimraf */**/node_modules"
}
}