使用npm时出现意外行为。例如,使用以下命令安装express:
npm install express
我希望在“node_modules”目录中创建一个名为“express”的文件夹,并且它的依赖项将安装在此文件夹中的“node_modules”子目录中。
我所看到的是正在创建“express”文件夹但是它的所有依赖项都被添加到我的项目文件夹中的根“node_modules”目录(与express相同的级别)而不是嵌套在“express”中文件夹中。
为什么会这样? (使用npm v3.3.5)
答案 0 :(得分:13)
这是npm @ 3的设计更改,默认情况下会进行重复数据删除。参见:
扁平,扁平!
您的依赖项现在将安装 maximally flat 。就目前而言 可能的,所有依赖项,它们的依赖项,以及它们 依赖项将安装在项目的
node_modules
文件夹中,但不会 筑巢。当两个(或。)时,你只能看到彼此嵌套的模块 更多)模块具有冲突的依赖关系。
https://github.com/npm/npm/blob/ff47bc138e877835f1c0f419fea5f5672110678a/CHANGELOG.md#flat-flat-flat