depcheck是识别未使用npm包的核心工具,支持ts/vue/react等,需先运行depcheck扫描出unused dependencies,再结合webpack-bundle-analyzer验证实际打包情况,最后用npm uninstall --save或--save-dev安全卸载。

直接卸载未使用的 npm 包不能靠猜或手动删,得先识别哪些包真没被用——否则容易误删导致项目报错。核心思路是:先检测,再确认,最后安全移除。
用 depcheck 自动识别无用依赖
depcheck 是目前最可靠、支持 TypeScript 和现代构建工具(如 Vite、Webpack)的检测工具。它能扫描 JS/TS 代码、模板、配置文件,区分 真正未引用 的包和“看似没用但被动态加载”的包。
- 全局安装:
npm install -g depcheck - 进项目根目录运行:
depcheck - 输出示例中
Unused dependencies下列出的就是可清理项,Missing dependencies则提醒你漏装了什么 - 想跳过某些包(比如按环境条件加载的):
depcheck --ignores=dotenv,react-icons
验证后再执行卸载操作
检测结果只是建议,不是绝对指令。尤其注意以下情况:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 包名出现在
require()字符串拼接里(如require(name + '-plugin')),depcheck 通常无法识别,需人工核对 - 被 Webpack alias、Vite 插件或 Babel 插件隐式引入的包,可能显示为“未使用”,但实际需要保留
- 检查
package.json中该包在dependencies还是devDependencies,卸载时要匹配对应字段
正确卸载命令与参数含义
卸载必须带保存标志,否则只删 node_modules,不改 package.json,下次 npm install 又会装回来。
- 删生产依赖:
npm uninstall lodash或npm uninstall lodash --save - 删开发依赖:
npm uninstall eslint --save-dev或简写npm uninstall eslint -D - 删可选依赖:
npm uninstall fsevents -O -
不推荐只用
npm rm或npm r简写,易漏掉--save参数
辅助工具与预防建议
除了 depcheck,还可搭配使用:
-
npm-unused:轻量快速,适合简单项目,命令为npm-unused -d直接删除 -
npm list --depth=0:查看当前一级依赖,辅助人工排查明显冗余 - 把
depcheck加入 CI 流程(如 GitHub Actions),每次 PR 都自动检查,避免新依赖堆积 - 定期执行
npm audit和npm outdated,一并处理安全风险和陈旧版本
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










