npm node_modules没有正确嵌套?

时间:2015-10-03 18:52:37

标签: npm

使用npm时出现意外行为。例如,使用以下命令安装express:

npm install express

我希望在“node_modules”目录中创建一个名为“express”的文件夹,并且它的依赖项将安装在此文件夹中的“node_modules”子目录中。

我所看到的是正在创建“express”文件夹但是它的所有依赖项都被添加到我的项目文件夹中的根“node_modules”目录(与express相同的级别)而不是嵌套在“express”中文件夹中。

为什么会这样? (使用npm v3.3.5)

1 个答案:

答案 0 :(得分:13)

这是npm @ 3的设计更改,默认情况下会进行重复数据删除。参见:

  

扁平,扁平!

     

您的依赖项现在将安装 maximally flat 。就目前而言   可能的,所有依赖项,它们的依赖项,以及它们   依赖项将安装在项目的node_modules文件夹中,但不会   筑巢。当两个(或。)时,你只能看到彼此嵌套的模块   更多)模块具有冲突的依赖关系。

https://github.com/npm/npm/blob/ff47bc138e877835f1c0f419fea5f5672110678a/CHANGELOG.md#flat-flat-flat

https://github.com/npm/npm/issues/6912