【问题标题】:What is deduped in npm packages list?npm 包列表中删除了哪些内容?
【发布时间】:2019-03-17 18:43:52
【问题描述】:

我正在运行命令作为 npm 列表,我得到下面提到的列表作为我的依赖项,我想知道 deduped 的含义是什么。请告诉我这是什么意思。

【问题讨论】:

标签: node.js npm


【解决方案1】:

deduped 是“deduplicated”的缩写(已删除重复项)。 npm dedupe 的文档解释了 npm 如何做到这一点:

搜索本地包树并尝试通过将依赖关系进一步向上移动来简化整体结构,从而可以更有效地由多个依赖包共享。

换句话说,它查看多个包是否具有相同的依赖项(意味着相同的包版本范围)并将它们“指向”同一个包。

引用的是同一个包,所以不必安装两次。

此外,它会将包“向上”移动(使树变平)。这完全有道理,否则一个包将不得不查看其他包的node_modules(这会有点混乱)并有助于简化依赖关系。

您可以验证这一点,因为在您的依赖关系图中显示 deduped 的每个包都可以在图中至少再找到一次,通常位于更高的级别。

在您发布的屏幕截图中,content-type@1.0.4body-parser 的依赖项。再往下一点,它也被列为上一级 express 的直接依赖。

【讨论】:

    【解决方案2】:

    遗憾的是,我只能在此处发布,而不能在评论部分发布,因为我没有 50 个代表,但使用 npm v8.3 您还可以使用 overrides 对于树中的包:

    https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides

    我为什么要提到它?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多