Skip to content

Blazingly fast scanner to find and clean `node_modules` across your disks.极速扫描并清理磁盘上的 `node_modules` 目录。

License

Notifications You must be signed in to change notification settings

wangmiaozero/clean-node-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clean-node-modules

简体中文 | English

release license ci

极速扫描并清理磁盘上的 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

FAQ

  • 扫描很慢怎么办?
    • 使用 --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 已同步最新行为

License

MIT © 2025 wangmiaozero

详见 LICENSE

About

Blazingly fast scanner to find and clean `node_modules` across your disks.极速扫描并清理磁盘上的 `node_modules` 目录。

Resources

License

Stars

Watchers

Forks

Packages

No packages published