npm express安装增加了额外的依赖

当我cd到我的项目和npm安装expression – 保存它不仅注入到我的node_modulesexpression,但也安装了很多其他依赖,我不需要或想要的。 我试图卸载并重新安装节点和NPM。 我正在使用自制软件来安装节点。 有人能帮我理解为什么会发生这种情况吗?

npm install express – 保存

─┬ express@4.13.4 ├─┬ accepts@1.2.13 │ ├─┬ mime-types@2.1.9 │ │ └── mime-db@1.21.0 │ └── negotiator@0.5.3 ├── array-flatten@1.1.1 ├── content-disposition@0.5.1 ├── content-type@1.0.1 ├── cookie@0.1.5 ├── cookie-signature@1.0.6 ├─┬ debug@2.2.0 │ └── ms@0.7.1 ├── depd@1.1.0 ├── escape-html@1.0.3 ├── etag@1.7.0 ├─┬ finalhandler@0.4.1 │ └── unpipe@1.0.0 ├── fresh@0.3.0 ├── merge-descriptors@1.0.1 ├── methods@1.1.2 ├─┬ on-finished@2.3.0 │ └── ee-first@1.1.1 ├── parseurl@1.3.1 ├── path-to-regexp@0.1.7 ├─┬ proxy-addr@1.0.10 │ ├── forwarded@0.1.0 │ └── ipaddr.js@1.0.5 ├── qs@4.0.0 ├── range-parser@1.0.3 ├─┬ send@0.13.1 │ ├── destroy@1.0.4 │ ├─┬ http-errors@1.3.1 │ │ └── inherits@2.0.1 │ ├── mime@1.3.4 │ └── statuses@1.2.1 ├── serve-static@1.10.2 ├─┬ type-is@1.6.11 │ └── media-typer@0.3.0 ├── utils-merge@1.0.0 └── vary@1.0.1 

你可能运行npm版本3或以上。 这个版本使得依赖的所有依赖都存储在根节点模块文件夹中。

有关更多信息,请参阅https://github.com/npm/npm/releases/tag/v3.0.0

现在您的依赖关系将被最大限度地安装。 只要有可能,所有的依赖关系,它们的依赖关系,以及它们的依赖关系都将被安装在项目的node_modules文件夹中,而不会嵌套。 当两个(或更多)模块具有冲突的依赖关系时,只能看到嵌套在另一个之下的模块。

这很正常,你要安装的模块必须有自己的依赖才能正常工作,所以它们同时安装在你的node_modules