前言
最近有个老项目在打包发布时失败了,失败的原因是依赖包下载失败(这个项目公司运维人员配置成自动构建了,大体上监听git提交,提交后通过脚本来执行依赖下载、项目打包命令)。最后是通过开发人员本地打包,将打包后的文件发布到服务器上。
这个问题解决后,看了一下下载失败的依赖是 file-saver
,结果这个依赖在项目中根本就没有被用到。
很多老项目由于时间太久,经手的人太多,就会出现一些无用的依赖包。能不能找到这些依赖,并将其删除?
eslint
eslint配置教程见:vscode配置eslint格式化vue,eslint不好使的问题
通过配置eslint来查找有哪些依赖在页面中引用了,但是根本就没有使用。先将这一部分引用从项目中移出(这里指的是移出导入,不是把依赖删除掉)
例如:图片中的moment
被导入了,但是没有使用
depcheck
安装
npm install -g depcheck
需要node.js >= 10
使用
在项目根目录下,运行depcheck
会自动进行检测,例如:
其中 Unused 表示没有使用的依赖包,Missing 表示使用到了但是没有在package.josn 文件中声明的依赖包。而 dependencies 和 devDependencies 对应的就是package.josn里的属性
删除
npm uninstall 包名
不要直接在package.josn,通过命令行进行删除。另外可能有些依赖拿不准,最好建议保留,比如上面的 npm 和 install ,这两个感觉不能随便删除。
二次验证
删完之后不要着急提交,先build一下,如果没有报错的话,再进行提交。