在npm2中运行npm重复数据删除与使用npm3之间有什么区别?

时间:2016-05-09 23:50:31

标签: npm

在npm3中,它尝试以最大的平面方式安装依赖项。但是在npm2中,我们已经拥有了npm dedupe命令,这似乎也可以平衡依赖性。如果我已经使用npm2进行npm dedupe,那么使用npm3是否有任何优势?

1 个答案:

答案 0 :(得分:0)

我做了一些研究并安装了npm3,事实证明两者在dedupe命令方面似乎没有区别。主要区别在于,当npm3中安装了模块时,它们将倾向于安装"扁平",而在npm2及更早版本中,它们将位于依赖模块的下方。 node_modules目录。

以下是一系列说明性的ASCII图。

npm2中(模块A取决于B和C,它们都依赖于D):

+----A----B----D
        |
        \
         -C----D

dedupenpm2npm3之后,D会上移到最高级别:

+----A----B
     |  |
     |  \
     |   -C
     D

npm3 npm install之后,我们会看到B和C也会升级到最高级别:

+----A
     |
     |
     |
     D
     |
     |
     |
     B
     |
     |
     |
     C