我最近将npm更新到版本3.3.3,然后开始了一个新项目。我的package.json如下:
{
"name": "my project",
"description": "my description",
"version": "1.0.0",
"license": "MIT",
"devDependencies": {
"gulp": "^3.8.11",
"gulp-uglify": "^1.4.1",
"gulp-watch": "^4.1.1",
"gulp-rename": "^1.2.2",
"gulp-concat": "^2.5.2",
"gulp-autoprefixer": "^2.1.0",
"gulp-sass": "^1.3.3",
"browser-sync": "^2.7.13"
}
}
执行npm install
后,我在node_modules目录中看到352个已安装的模块。在更新npm之前,我只有10-15个已安装的模块使用非常相似的package.json(带有一些额外的依赖项)用于另一个项目。
所以问题是,为什么新版本的npm安装了这么多模块,我能以某种方式改变它的行为吗?
答案 0 :(得分:4)
这是npm@3
的核心功能之一:如果可能,您的依赖项的所有依赖项现在都安装在同一个顶级node_modules
目录中。
您的依赖项现在将 maximally 平面安装。在可能的情况下,所有依赖项及其依赖项和它们的依赖项都将安装在项目的
node_modules
文件夹中,而不进行嵌套。当两个(或更多)模块具有冲突的依赖关系时,您只会看到彼此嵌套的模块。这有望消除大多数情况,其中Windows用户最终使用的路径对于Explorer和其他标准工具来说太长了。
没有办法禁用它。