在 npm 软件包列表中引用了什么?

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

Please check below mention image...!!!!

56037 次浏览

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

搜索本地包树,并试图通过将依赖关系向上移动来简化总体结构,这样可以更有效地由多个依赖包共享这些依赖关系。

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

引用同一个包,因此不必安装两次。

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

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

在截图中,你发布的 content-type@1.0.4body-parser的一个依赖项。再往下一点,它也被列为高一级表达式的直接依赖项。

遗憾的是,我只能在这里发布它,而不是在评论部分,因为我没有50代表,但与 Npm v8.3你也可以使用 重写的软件包在您的树:

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

我为什么要提这个?

- > 覆盖也被标记为“ deuped”,不管它们在树上有多高,所以即使 y 分支中的包 x 只被监听一次,它仍然会被标记为“ deuped”