使用depcheck检查缺失的项目依赖
由来:今天在做地铁的时候,刷短视频发现一个非常好用的东西,分享一下
它可以帮助我们找出问题,在 package.json 中,每个依赖包如何被使用、哪些依赖包没有用处、哪些依赖包缺失。它是解决前端项目中依赖包清理问题的一个常用工具。
我们以前只知道装了哪些包,却不知道有些包用没用到或者哪些依赖包缺失了不知道怎么办,现在depcheck
就知道了
1.首先在项目中全局安装一下
npm install -g depcheck
2.然后在你项目的根目录下执行以下命令:
depcheck
就会出来这些东西,分别给你们解释下各自是干嘛的
Unused dependencies
:未使用的依赖关系
,这个是你在项目中没有用到的包,删除的时候记得全局搜索下,有的包是真的没用到,有的包你用了,但是在项目中注释掉,暂时先不用,不然后面也是一个大坑。
Unused devDependencies
:未使用的依赖模块
,这个在你项目中的package.json里的devDependencies
这个东西,是不是似曾相识
Missing dependencies
:缺少,缺失的依赖关系
,这个在你运行项目的时候一老警告的那些东西
3.安装缺失的依赖包
比如,我上述缺失这个iview的包,我就安装安装下
npm i c-design --save
4.删除未使用的依赖包
npm uninstall iview-area qrcodejs2
depcheck 的基本语法看下面
其中,directory 是项目根目录(即 package.json 文件所在的目录)。如果未指定,默认为当前目录。所有参数都是可选的:
- –ignore-bin-package=[true|false]:表示 depcheck 是否忽略包含 bin 入口的包。默认值为 false。
- –skip-missing=[true|false]:表示 depcheck 是否跳过计算缺失的依赖项。默认值为 false。
- –json:以 JSON 格式输出结果。当未指定时,depcheck 会以友好的格式输出。
- –oneline:将结果作为用空格分隔的字符串输出。用于复制/粘贴很有用。
- –ignores:一个由逗号分隔的数组,包含要忽略的包名称。它可以是 glob 表达式。例如,–ignores=“eslint,babel-*”。
- –ignore-dirs:已过时,请改用 ignore-patterns。一个由逗号分隔的数组,包含要忽略的目录名称。例如,–ignore-dirs=dist,coverage。
- –ignore-path:指定包含描述要忽略的文件的模式的文件的路径。文件必须符合 .gitignore 规范。例如,–ignore-path=.eslintignore。
- –ignore-patterns:用逗号分隔的描述要忽略的文件的模式。模式必须符合 .gitignore 规范。例如,–ignore-patterns=build/Release,dist,coverage,*.log。
- –help:显示帮助信息。
- –parsers、–detectors 和 --specials:这些参数用于高级用途。它们提供了一种易于定制文件解析器和依赖项检测的方法。。
- –config=[文件名]:一个外部配置文件(见下文)。
例如,想忽略某些包或文件夹,可以在命令后面添加相应的选项:
depcheck --ignores="eslint" --ignore-dirs="dist"
官方文档地址
Github:https://github.com/depcheck/depcheck