“npm install”将所有依赖项安装在node_modules目录中,而不是将它们嵌套
我需要知道以下行为是否正常。
当我npm install , package.json和依赖关系中的每个包都不再安装嵌套 ,但是每个依赖都安装在node_modules目录中。 这使得我的node_modules目录被炸毁,看起来像这样: 
  
 
这是因为我更新了npm和节点。
现在我运行:
 npm -v 3.3.6 node -v 4.2.1 python 2.7 windows 7 wamp 
 我的package.json文件如下所示: 
 { "private": true, "devDependencies": { "gulp": "^3.8.8" }, "dependencies": { "laravel-elixir": "^3.0.0", "bootstrap-sass": "^3.0.0" } } 
 这是标准的laravel package.json文件。 
有没有办法再次有嵌套的目录,因为我不喜欢这样一个超过100个子目录吹的文章。
 根据这个npm博客 , 这是npm 3的新行为。 
是的,有一种方法可以通过更改npm(本文写作的第3版)默认行为来重新嵌套目录:
- 
删除当前存在的 node_modules文件夹。
- 
告诉npm使用旧版捆绑进行安装: npm install --legacy-bundling
一个“永久”的select:
- 
设置您的NPMconfiguration始终使用传统捆绑… npm set legacy-bundling=true
- 
..和往常一样运行: npm install
注意:使用传统捆绑获取依赖关系需要花费更多时间,因为将安装相同依赖关系的多个不同版本。
免责声明:作为非Windows用户,我不需要平面依赖关系,并希望轻松地find自我声明的依赖关系,以支持自动重复数据删除。 由于在没有传统捆绑的情况下安装npm依赖关系已经花费了大量的时间,我通常愿意花这些额外的几分钟安装时间。 它从以前的700+(…)回到了5个目录在一个Laravel Elixir设置与引导(非sass),字体真棒和jQuery添加。