我的node_modules包含的package.json依赖项中没有列出,所以我猜这些包是我的依赖项的依赖项。我怎么能检查这个?我想确保在node_modules目录中没有任何不必要的包。
答案 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
命令,它将读取依赖关系树并删除真正不再需要的包。