如何检查node_modules目录中是否有不必要的包?

时间:2016-09-03 04:32:57

标签: node.js npm package package-managers

我的node_modules包含的package.json依赖项中没有列出,所以我猜这些包是我的依赖项的依赖项。我怎么能检查这个?我想确保在node_modules目录中没有任何不必要的包。

4 个答案:

答案 0 :(得分:2)

如果你的依赖列表不会花费太长时间来重新安装,一个简单的选项是表翻转:完全删除node_modules目录并运行npm install来重新创建它。 / p>

如果您不想这样做,可以尝试使用检查依赖关系的工具,例如@ {sagar-gopale在答案中建议的depcheck

相关:运行npm -v以查明您是否正在运行npm v2或v3。就像@cartant在他们的回答中所说的那样,使用v3,你的node_modules目录将是最大的平面,这意味着以前作为其他模块的子目录出现的东西(当用npm v2安装时)现在将出现在顶层node_modules本身。这可能是您看到比预期更多模块的原因。

答案 1 :(得分:1)

如果您使用的是NPM 3,您可能会在node_modules目录中看到大量您不希望看到的模块,因为NPM 3会使依赖关系层次变得扁平化。

无论您使用哪个版本,如果运行npm list命令,NPM都应突出显示任何不需要的无关模块。

答案 2 :(得分:1)

答案 3 :(得分:1)

由于软件包可能需要其他软件包,因为node_modules文件夹中的软件包不存在于packages.json文件中并不意味着您指定的软件包不需要它们包。

如果在解决方案的根目录上运行npm prune命令,它将读取依赖关系树并删除真正不再需要的包。