depcheck是node.js项目专用的静态依赖检测工具,核心功能是扫描代码中import/require语句与package.json声明的交叉匹配,精准识别未使用的dependencies/devdependencies、缺失依赖及依赖分类错误,支持js/ts/vue等多语法,输出清晰分类结果。

检查项目中未使用的依赖包,核心是借助静态分析工具识别 package.json 中声明但代码里从未 import/require 的包。重点不是“能不能删”,而是先准确识别哪些大概率真没用——尤其要区分生产依赖和开发依赖,避免误删。
推荐用 depcheck 做精准扫描
depcheck 是目前最专注、最可靠的未使用依赖检测工具,支持 JS/TS/JSX/Vue/SCSS 等主流语法,能明确列出 unused dependencies 和 unused devDependencies:
- 全局安装(一次装好,所有项目可用):
npm install -g depcheck - 进入项目根目录(含 package.json),直接运行:
depcheck - 它会输出三类结果:
– Unused dependencies:生产依赖中未被引用的包
– Unused devDependencies:开发依赖中未被引用的包(如废弃的 lint 插件、旧版测试工具)
– Missing dependencies:代码里用了但没在 package.json 声明的包(这和“未使用”无关,别混淆)
用 npm-check 辅助验证和更新
npm-check 更偏向依赖健康度管理,但它也能提示未使用依赖,并提供交互式操作:
- 全局安装:
npm install -g npm-check - 运行:
npm-check(默认检查全部依赖)或npm-check -d(只查 devDependencies) - 界面中会标出 “Unused” 类型的包,支持空格键选择、回车确认移除
- 注意:它不区分 dependencies/devDependencies 的语义,所以对生产依赖要格外谨慎,不能直接删
人工验证不能跳过
工具再准也是静态分析,会漏掉配置文件、Webpack loader、动态 require、框架插件等场景。所以关键一步是人工确认:
- 对 unused devDependencies:基本可删(比如 babel-plugin-xxx、karma-xxx 等已弃用的开发工具)
- 对 unused dependencies:必须查清楚 —— 它是否在 webpack.config.js、vue.config.js、.babelrc、postcss.config.js 或其他配置里被引用?是否用于 SSR、构建时生成、CLI 脚本?
- 一个简单验证法:临时删掉该包,运行
npm run build和npm test,看是否报错
辅助命令快速理清依赖归属
配合使用原生命令,能快速定位依赖类型,避免误判:
-
npm ls --prod --depth=0:只看顶层生产依赖,一目了然哪些是 runtime 必需 -
npm ls --dev --depth=0:只看顶层开发依赖,方便聚焦清理目标 -
npx depcheck --ignores="webpack,eslint,vue-loader":忽略已知在配置中使用的包,减少误报
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











