简体中文 | English
极速扫描并清理磁盘上的 node_modules 目录。
- 模式1 (dir): 扫描指定目录(需提供
--path或在交互中输入)。 - 模式2 (all): 扫描当前电脑所有目录(默认根目录/全盘;Windows 会枚举存在盘符)。
- 无参数启动(含双击打包产物)自动进入交互菜单。
- 快速并发扫描(默认并发 64)
- 可限制最大递归深度,支持隐藏目录开关
- 交互确认与
--dry-run预览,避免误删 - 跨平台(macOS / Linux / Windows)
- 打包成独立可执行文件,双击即可运行
cd /path/to/clean-node-modules
pnpm add -D pkg
pnpm run build
# 生成 dist/{clean-node-modules-*} 各平台可执行文件# 无参数: 进入交互菜单(1=指定目录,2=全盘扫描)
node bin/clean-node-modules.js交互菜单示例:
请选择:
1) 扫描指定目录
2) 扫描当前电脑所有目录
# 模式1: 指定目录,不询问直接删除
node bin/clean-node-modules.js --mode dir --path /path/to/projects --yes
# 模式1: 仅查看(不删除)
node bin/clean-node-modules.js --mode dir --path /path/to/projects --dry-run
# 模式2: 全盘扫描(可能较慢)
node bin/clean-node-modules.js --mode all
# 模式2: 仅扫描用户目录
node bin/clean-node-modules.js --mode all --path "$HOME"
# 模式2: 全盘扫描并直接删除(谨慎)
node bin/clean-node-modules.js -m all -y
# 或显式指定根目录
node bin/clean-node-modules.js -m all -p / -y| 选项 | 含义 |
|---|---|
| `-m, --mode <dir | all>` |
-p, --path <path> |
mode=dir 的起始目录;mode=all 可用于改写默认起点 |
-y, --yes |
不询问,直接删除 |
-n, --dry-run |
仅展示将要删除的 node_modules,不实际删除 |
-c, --concurrency <num> |
并发读取目录数,默认 64 |
-d, --max-depth <num> |
最大递归深度(0=仅顶层),默认无限 |
--include-dot |
包含以 . 开头的隐藏目录 |
--exclude <a,b,c> |
逗号分隔的需要跳过的目录名 |
-h, --help |
显示帮助 |
- 基础排除:
.git,.hg,.svn,.cache,.idea,.DS_Store,dist,build,out,coverage,.pnpm-store,.npm,.yarn,.nvm,.cargo,.vscode,Pods,DerivedData,android,ios mode=all额外排除(macOS 常见):Library,Applications,Movies,Music,Pictures,Public,Downloads,Desktop
可通过 --exclude 自行追加排除项;需要包含隐藏目录时添加 --include-dot。
- 全盘扫描可能较慢,建议在意速度时使用
--path "$HOME"或特定起点。 - 可用
--max-depth限制深度;例如--max-depth 2顶层两级。 - 某些系统目录可能无权限访问,会被安全忽略,但仍会消耗少量时间。
- macOS / Linux:
mode=all默认从根目录/开始。 - Windows:
mode=all会枚举存在的盘符(如C:\\,D:\\)。 - 打包产物可直接双击运行:
# macOS Apple Silicon
./dist/clean-node-modules-macos-arm64
# macOS Intel
./dist/clean-node-modules-macos-x64- 扫描很慢怎么办?
- 使用
--path "$HOME"或更精确的起点;或调小--max-depth。
- 使用
- 会误删吗?
- 默认会在删除前交互确认;若传入
--yes则不会询问,务必先--dry-run预览。
- 默认会在删除前交互确认;若传入
- 如何只预览不删除?
- 加
--dry-run。
- 加
欢迎 PR!
git clone https://github.com/wangmiaozero/clean-node-modules.git
cd clean-node-modules
pnpm i
pnpm run build提交前请确保:
- 代码能在本地运行(源码/打包均可)
- README 已同步最新行为
MIT © 2025 wangmiaozero
详见 LICENSE