使用npm时我遇到了意想不到的行为.例如,使用命令安装express时:
npm install express
Run Code Online (Sandbox Code Playgroud)
我希望在"node_modules"目录中创建一个名为"express"的文件夹,并且它的依赖项将安装在该文件夹中的"node_modules"子目录中.
我所看到的是正在创建"express"文件夹,但它的所有依赖项都被添加到我的项目文件夹中的根"node_modules"目录(与express相同的级别),而不是嵌套在"express"文件夹中.
为什么会这样?(使用npm v3.3.5)
JMM*_*JMM 13
这是npm @ 3的设计更改,默认情况下会进行重复数据删除.看到:
扁平,扁平!
您的依赖项现在将最大程度地安装.在可能的情况下,所有依赖项及其依赖项和它们的依赖项都将安装在项目的
node_modules文件夹中而不进行嵌套.当两个(或更多)模块具有冲突的依赖关系时,您将只看到彼此嵌套的模块.
https://github.com/npm/npm/blob/ff47bc138e877835f1c0f419fea5f5672110678a/CHANGELOG.md#flat-flat-flat
https://github.com/npm/npm/issues/6912
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |