“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添加。