npkill:一键清理 node_modules,瞬间释放磁盘空间!
开发者福音,专治 node_modules 磁盘爆炸难题
你是否曾经打开资源管理器,惊讶地发现硬盘空间所剩无几?然后经过一番排查,发现罪魁祸首竟是那些庞大的 node_modules
文件夹?每个 JavaScript 开发者都曾面临过这个难题——依赖包堆积成山,占用大量磁盘空间。今天介绍的 npkill 工具,正是解决这一痛点的神器。
什么是 npkill?
npkill 是一个专门设计用于查找和删除 node_modules
文件夹的命令行工具。它能够快速扫描你的整个磁盘或指定目录,找出所有 node_modules
文件夹,并以交互式界面展示出来,让你轻松选择删除哪些文件夹。
简单来说,npkill 就像是给你的磁盘来一次「大扫除」,专门清理那些占用空间的依赖包文件夹。
核心功能与使用场景
主要使用场景
- 磁盘空间告急时:单个
node_modules
文件夹通常几百MB,多个项目轻松占用几个GB空间 - 清理陈旧项目:删除那些不再维护的老项目依赖
- 快速释放空间:比手动查找和删除更加高效便捷
功能特点
- 快速扫描整个文件系统或指定路径
- 交互式终端界面,支持光标选择
- 显示每个文件夹的大小和最后修改时间
- 支持筛选和批量删除操作
安装与使用
快速开始(推荐)
无需安装,直接使用 npx 运行:
npx npkill
全局安装
如果你计划频繁使用,可以全局安装:
npm install -g npkill
然后直接运行:
npkill
项目内安装
作为开发依赖安装:
npm install npkill --save-dev
然后在 package.json 中添加脚本:
{
"scripts": {
"clean:node_modules": "npkill"
}
}
运行脚本:
npm run clean:node_modules
基本使用方法
运行 npkill 后,你会看到一个交互式界面,类似这样:
Path Size Last Modified
---------------------------------------------------------------
/Users/username/projects/project1/node_modules 480 MB 2024-07-18
/Users/username/projects/project2/node_modules 320 MB 2024-05-02
/Users/username/projects/project3/node_modules 210 MB 2024-06-15
使用键盘上下箭头移动选择项,按空格键标记要删除的文件夹,然后按回车执行删除操作。
高级用法
指定扫描目录
默认情况下,npkill 会从当前目录开始扫描,但你可以指定任何路径:
npx npkill ./my-projects
无交互模式(自动确认删除)
使用 --yes
或 -y
参数跳过确认直接删除:
npx npkill --yes
注意:此操作会直接删除所有找到的 node_modules 文件夹,请谨慎使用!
按大小筛选
只显示大于特定大小的文件夹(单位:MB):
npx npkill --greater-than 500
只显示小于特定大小的文件夹:
npx npkill --less-than 100
排除特定目录
使用 --ignore
参数排除不想扫描的路径:
npx npkill --ignore "./important-projects"
删除其他目录(如 Yarn 缓存)
npkill 主要针对 node_modules,但也可以用来查找和删除其他目录:
npx npkill --target "yarn-cache"
实用技巧与示例
定期清理脚本
你可以创建一个定期清理的脚本,例如在每周清理一次不再活跃的项目:
#!/bin/bash
# clean_node_modules.sh
# 查找30天内未修改的项目的node_modules
find ./projects -name "node_modules" -type d -mtime +30 -exec echo "删除 {}" \;
与版本控制结合
在删除前,确保项目已提交所有更改,避免误删未提交的依赖:
#!/bin/bash
# 检查git状态
if git status --porcelain | grep -q "package.json"; then
echo "package.json 有更改,请先提交更改"
exit 1
fi
npx npkill
注意事项与风险提示
- 删除不可恢复:npkill 会直接删除文件夹,操作前请确认
- 项目依赖需要重新安装:删除后如需运行项目,需要重新执行
npm install
- 谨慎使用自动模式:
--yes
参数会直接删除所有找到的文件夹,没有确认步骤 - 避免删除正在使用的依赖:确保不要删除正在开发中的项目的依赖
替代方案比较
虽然手动删除 node_modules
文件夹也是一种方法,但 npkill 提供了更多优势:
方法 | 优点 | 缺点 |
---|---|---|
npkill | 快速、可视化、可筛选 | 需要安装或使用npx |
手动删除 | 无需额外工具 | 耗时、容易遗漏 |
rimraf | 可批量删除 | 需要知道具体路径 |
find + rm | Unix系统原生支持 | 命令复杂、跨平台兼容性差 |
总结
npkill 解决了 JavaScript 开发者长期面临的一个痛点——node_modules
文件夹占用过多磁盘空间。它提供了一种高效、直观的方式来查找和删除这些文件夹,特别是当你拥有多个项目时,优势更加明显。
无论是临时需要释放磁盘空间,还是定期清理不再维护的项目,npkill 都是一个值得添加到工具箱中的实用工具。
资源链接
尝试运行一下 npx npkill
,看看你能释放多少磁盘空间吧!你会发现,它不仅能清理磁盘,还能带给你一种「释放空间」的满足感。