depcheck可快速识别未使用和缺失依赖:扫描源码中import/require等调用,与package.json对比,输出Unused dependencies、Unused devDependencies、Missing dependencies及Invalid files四类结果,支持--json、--ignores等选项提升实用性,但不自动删除,需人工确认后执行npm uninstall或install。

直接用 depcheck 就能快速定位哪些包装了却没用、哪些用了却没装——它不靠猜测,而是扫描你所有源码里的 import、require 和 JSX/Vue/TS 等语法调用,再和 package.json 逐一对比。
安装方式(推荐全局)
一行命令搞定,后续所有项目都能直接用:
npm install -g depcheck
如果提示权限问题(比如 macOS M1/M2),加 sudo:
sudo npm install -g depcheck
也支持局部安装(仅当前项目):
npm install depcheck --save-dev,之后用 npx depcheck 运行。
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
基础扫描与结果解读
进项目根目录(package.json 所在处),执行:
depcheck
输出会分四块:
-
Unused dependencies:生产依赖里装了但代码完全没引用的包(如
lodash、moment) -
Unused devDependencies:开发依赖里闲置的(如
jest、sass但项目实际用的是less) -
Missing dependencies:代码里写了
import axios from 'axios',但package.json没声明 -
Invalid files:未被引用的类型定义、配置文件等(如
src/typings/deprecated.d.ts)
常用选项提升实用性
避免误报或聚焦重点:
- 跳过检查
devDependencies:depcheck --without-dev - 只看缺失项(适合上线前校验):
depcheck --skip-unused - 输出为 JSON(方便脚本解析或 CI 集成):
depcheck --json - 忽略特定包(比如构建工具插件):
depcheck --ignores=webpack,vite-plugin-compression - 指定扫描目录(多包项目):
depcheck packages/my-app
清理操作要手动确认
depcheck 只报告,不自动删包。确认无误后才执行:
- 删未使用依赖:
npm uninstall lodash moment(默认删dependencies) - 删开发依赖:
npm uninstall jest eslint --save-dev - 补缺失依赖:
npm install axios chalk --save或--save-dev
注意:有些包虽没在源码中 import,但在 webpack/vite 配置、.babelrc、vue.config.js 里用了,depcheck 默认不扫描这些配置文件,需人工核对。

















