检测并删除项目中不用的依赖包
最近看一些项目发现依赖包很多,随便拿了几个搜索下,发现并没有用,因此可以删除了。但这样的包,一个个查询检索确认删除还是太麻烦。
想着怎么能高效的检测并删除不用的依赖包,基于这个需求,我写了一个小工具。
@stacker/remove-unused-deps
使用方法:项目根目录下执行如下命令,通过交互式选择不用的依赖包,回车即可卸载删除。
1 | npx @stacker/remove-unused-deps@latest |
原理
- depcheck
主要是该工具很棒,可以检测出项目中不用的依赖包和开发依赖包。但是该包有个缺点是只输出不用的依赖包,但不会主动卸载。因此需要配合其他工具来完成。 - fs扫描项目lock文件,从而判断包管理器是yarn还是npm
- 构建交互式命令行,在用户选择了需要删除的依赖包后,执行对应的卸载命令
特殊情况包
有些包虽然被扫描出来,但可能并不是不用的,而是项目中确实需要用到的。比如项目依赖了包A,包A用到了包B,但是依赖里却没写包B。因此还是需要用户手动确认。
写在最后
- 有了该工具,可以很方便的检测并删除项目中不用的依赖包。
- 删除无用包有助于清晰项目依赖,同时避免开发直接看到有包就用,造成项目同时并存多种方案包。
- 该工具目前只支持yarn和npm,其他包管理器还未支持,这点之后随着需求驱动再支持,