是否有一种方法可以确定您的包中是否有包。Json文件,不再需要?

例如,当我尝试一个包,然后注释或删除代码,但忘记卸载它时,我最终得到了几个可以删除的包。

确定一个包是否可以安全删除的有效方法是什么?


当前回答

检查未使用的依赖项

npm install depcheck -g
depcheck

查看过时的图书馆

npm outdated

其他回答

我已经创建了一个包unused-package (https://www.npmjs.com/package/unused-package),它返回任何未使用的包,或者如果包是devDependency,但作为正常依赖项安装

创建一个文件并将此代码添加到您的文件中

const check = require("unused-package");

check({ entries: ['entry path to your code'] }).then((res) => {
  console.log(res) // list of packages returned by library
});

used-package相对于depcheck包的一个优点是unused-package支持多个入口路径。

如果你使用的是类似Unix的操作系统(Linux, OSX等),那么你可以使用find和egrep的组合来搜索包含包名的require语句:

find . -path ./node_modules -prune -o -name "*.js" -exec egrep -ni 'name-of-package' {} \;

如果你搜索整个require('name-of-package')语句,记得使用正确类型的引号:

find . -path ./node_modules -prune -o -name "*.js" -exec egrep -ni 'require("name-of-package")' {} \;

or

find . -path ./node_modules -prune -o -name "*.js" -exec egrep -ni "require('name-of-package')" {} \;

缺点是它不是全自动的,也就是说它不能从包中提取包名。Json并检查它们。您需要自己为每个包执行此操作。因为包。json只是json,这可以通过编写一个使用child_process的小脚本来纠正。为每个依赖项运行此命令。让它成为一个模块。并将其添加到NPM回购…

检查未使用的依赖项

npm install depcheck -g
depcheck

查看过时的图书馆

npm outdated

如果你想选择站在哪个巨人的肩膀上

这里有一个链接来生成npm可用选项的简短列表;它过滤关键字未使用的包

https://www.npmjs.com/search?q=unused%20packages

为什么我的答案只是一个链接?

通常我不会只提供一个链接。这个问题的答案应该不那么费时。解决方案依赖于最新的软件。推荐一个可能已经停止维护的特定软件(这里的一些建议的情况)是没有什么用处的。帮助人们找到一些当前的东西似乎是合适的。

用于检查未使用的依赖项,库和未导入的文件

 npx unimported