为什么npm将许多软件包安装到"/ node_modules"而不是只安装一个?

Gre*_*een 0 node.js npm

我经历npmnpm install <package>命令的奇怪行为.在它自己的专用目录中安装包之前.例如,我输入以下命令:

$ npm i babel-preset-es2015
Run Code Online (Sandbox Code Playgroud)

我只/babel-preset-es2015/node_modules目录下获得一个目录,如下所示:

node_modules/babel-preset-es2015
Run Code Online (Sandbox Code Playgroud)

现在它填充/node_modules了十几个奇怪的包.在babel-preset-es2015安装时,它会安装大约94个软件包:

在此输入图像描述

这是什么行为?这是正常的吗?它为什么开始发生?它是我误操作的设置之王吗?我的npm和节点版本:

$ npm -v
3.3.12
$ node -v
v5.3.0
Run Code Online (Sandbox Code Playgroud)

Bek*_*Bek 5

因为你正在使用npm v3来安装依赖项,所以依赖项(及其依赖项......)的依赖关系最终会在同一个文件夹中,更多关于npm v3 changelog