1
头图

你是否曾为项目庞大的依赖列表而感到困扰?或者因为难以辨别哪些依赖项真正被使用而感到苦恼?不必担心!有了 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

会看到以下输出结果

1700150145439.jpg

其中:

  • 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 

项目久了依赖太多,可以通过以上命令删除无用的包,为项目减负。

看完觉得对您有所帮助别忘记关注呦
图片


codeteenager
620 声望44 粉丝