你是否曾为项目庞大的依赖列表而感到困扰?或者因为难以辨别哪些依赖项真正被使用而感到苦恼?不必担心!有了 depcheck,你可以轻松解决这些问题,让你的项目更加精致高效。
什么是 depcheck?
depcheck 是一款用于检测项目中未使用依赖项的工具。在软件开发中,我们经常引入各种依赖以支持项目功能,但这些依赖可能随着时间的推移变得多余或被遗忘。depcheck 通过扫描项目文件,帮助你找出未被引用的依赖,从而优化项目结构。
depcheck 的核心优势
- 简单易用: 仅需几个简单的命令,就能够扫描并列出未使用的依赖项,让你快速了解项目中的依赖情况。
- 跨项目适用: depcheck 不仅适用于特定类型的项目,它支持 JavaScript、TypeScript、Node.js 等多种项目类型,为广大开发者提供了极大的便利。
- 定制化输出: 除了简洁的扫描结果外,depcheck 还提供多种输出格式选项,满足不同开发者的需求。
- 排除误报: 有时依赖项可能被误判为未使用的,但 depcheck 允许你设置忽略规则,避免误报情况。
安装
npm install -g depcheck
或者简单地使用npx
npx depcheck
注意: depcheck 需要 node.js >= 10。
使用
在项目目录下直接执行命令 depcheck,或者 depcheck <你的项目目录> 。
例如我们项目的根目录下执行以下命令:
depcheck
会看到以下输出结果
其中:
- Unused dependencies:未使用的依赖关系,这个是你在项目中没有用到的包,删除的时候记得全局搜索下,有的包是真的没用到,有的包你用了,但是在项目中注释掉,暂时先不用,不然后面也是一个大坑。
- Unused devDependencies:未使用的依赖模块,这个在你项目中的package.json里的devDependencies这个东西,是不是似曾相识
- Missing dependencies:缺少,缺失的依赖关系,这个在你运行项目的时候一老警告的那些东西
不过可以使用参数过滤掉不想被检测的文件或者不想检测出来的包
depcheck --ignores="eslint" --ignore-dirs="dist"
常用的参数如下:
--skip-missing=[true | false]
:默认 false,表示是否检测 Missing 的依赖包--ignore-bin-package=[true | false]
:默认 false,表示是否忽略包含 bin 条目的包--json
:表示所有包的检测结果以 json 格式输出,大概就是 XX 包在哪些文件使用了,{"包名":["path1","path2"]}
--ignores="eslint,babel-*"
:表示要忽略的包名称(逗号分隔),比如depcheck --ignores="eslint,@babel/*,babel-*"
--ignore-path
:表示要忽略的文件的模式的文件的路径,比如depcheck --ignore-path=.eslintignore
--ignore-dirs
:已经弃用,使用--ignore-patterns
替代,表示要忽略的目录名,逗号分隔--ignore-dirs=dist,coverage
--ignore-patterns
:表示要忽略的用逗号分隔的模式描述文件,比如depcheck --ignore-patterns=build/Release,dist,coverage,*.log
--parsers, --detectors and --specials
:高级的语法使用参考官方文档--config=[filename]
:外部配置文件
注意:也可以创建一个 .depcheckrc 文件,然后直接配置
ignores: ["eslint", "babel-*", "@babel/*"]
skip-missing: true
项目久了依赖太多,可以通过以上命令删除无用的包,为项目减负。
看完觉得对您有所帮助别忘记关注呦
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。