【发布时间】:2019-03-17 18:43:52
【问题描述】:
【问题讨论】:
【问题讨论】:
deduped 是“deduplicated”的缩写(已删除重复项)。
npm dedupe 的文档解释了 npm 如何做到这一点:
搜索本地包树并尝试通过将依赖关系进一步向上移动来简化整体结构,从而可以更有效地由多个依赖包共享。
换句话说,它查看多个包是否具有相同的依赖项(意味着相同的包和版本范围)并将它们“指向”同一个包。
引用的是同一个包,所以不必安装两次。
此外,它会将包“向上”移动(使树变平)。这完全有道理,否则一个包将不得不查看其他包的node_modules(这会有点混乱)并有助于简化依赖关系。
您可以验证这一点,因为在您的依赖关系图中显示 deduped 的每个包都可以在图中至少再找到一次,通常位于更高的级别。
在您发布的屏幕截图中,content-type@1.0.4 是 body-parser 的依赖项。再往下一点,它也被列为上一级 express 的直接依赖。
【讨论】:
遗憾的是,我只能在此处发布,而不能在评论部分发布,因为我没有 50 个代表,但使用 npm v8.3 您还可以使用 overrides 对于树中的包:
https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
【讨论】: