Skip to content

批量删除 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
  1. 删除前
详情

2024-04-30-16-45-25

  1. 删除后
详情

2024-04-30-16-49-56

确实有文件被删除了。本方案仍旧有一些缺点:

基于工作区的命令,而不是面向整个项目的命令

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"
	}
}

贡献者

The avatar of contributor named as ruan-cat ruan-cat

页面历史

最近更新