随着前端项目中使用的依赖包越来越多,而其中一部分依赖包可能并未被项目所使用,手动查找这些依赖包既耗时又繁琐。那么,有没有工具能够快速地帮助我们识别和清理项目中未使用的依赖包呢?下面就来介绍两个用于检查未使用依赖包的常用工具!
Depcheck 是一款用于分析项目中依赖关系的工具,它可以帮助我们找出以下问题:在 package.json 中,每个依赖包如何被使用、哪些依赖包没有用处、哪些依赖包缺失。它是解决前端项目中依赖包清理问题的一个常用工具。
Depcheck 不仅可以识别 JAVAScript 文件中的依赖关系,还支持以下语法:
可以在终端中运行一下命令来安装 depcheck(需要确保 node.js 的版本大于等于 10.0.0):
npm install -g depcheck
在安装时,报了以下错误:
问题很明显就是权限不够(笔者的电脑是 M1 macBook,这里以 mac 的操作为例),问了一下 ChatGPT,给出的解答如下:
这里使用最简单的第一种方案来解决,使用管理员权限来安装:
sudo npm install -g depcheck
这样就安装成功了。接下来在前端项目的根目录下执行以下命令:
depcheck
可以看到以下没有被引用的依赖包以及缺少依赖的文件:
当然,这些依赖并不一定是真的没用到,比如 less、less-loader、file-loader、svgo、TypeScript 等都在项目或者 webpack 等配置中用到了,depcheck 会忽略这些包。实际上,depcheck 会忽略这些配置文件中使用到的依赖项。
depcheck 的基本语法如下:
depcheck [directory] [arguments]
其中,directory 是项目根目录(即 package.json 文件所在的目录)。如果未指定,默认为当前目录。所有参数都是可选的:
例如,想忽略某些包或文件夹,可以在命令后面添加相应的选项:
depcheck --ignores="eslint" --ignore-dirs="dist"
除此之外,我们还可以在项目中增加 depcheck 的配置文件来配置要忽略解析的文件、要解析的文件、要忽略的包等,可以查看官方的文档来进行配置。
Github:https://github.com/depcheck/depcheck
npm-check 用于检查项目中的依赖项,并提供有关过期,未使用和缺少依赖项的信息。npm-check 是基于 depcheck 实现的。它可以提示项目依赖项的状态,但它只会检查并更新项目的直接依赖项,并不会检查和更新嵌套的依赖项(即项目的依赖项的依赖项)
npm-check 具有以下特性:
可以在终端中通过以下命令来安装 npm-check(需要确保 node.js 的版本大于等于 10.9.0):
npm install -g npm-check
安装时同样遇到了权限的问题,这里也使用管理员权限来安装:
sudo npm install -g npm-check
接下来就可以执行以下命令来检测项目的 npm 包:
npm-check
执行完之后,就可以看到类似的结果:
这里面会详细介绍每个 npm 的情况,可以根据实际情况进行分析。
npm-check 的基本语法如下:
npm-check <path> <options>
其中 path 是要检查的路径。默认为当前目录。可以使用 -g 检查全局模块。
除此之外,还有以下选项:
除此之外,npm-check 也像 depcheck 一样,支持在项目根目录添加配置文件来进行配置,可以查看官方的文档来进行配置。
Github:https://github.com/dylang/npm-check