1

当我 cd 进入我的项目并 npm install express --save 时,它​​不仅将 express 注入到我的 node_modules 中,而且还安装了许多我不需要或不想要的其他依赖项。我试图卸载并重新安装 node 和 npm。我正在使用自制软件安装节点。有人可以帮我理解为什么会这样吗?

npm install express --save

 ─┬ 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 
4

2 回答 2

2

您可能正在运行 npm 版本 3 或更高版本。这个版本使得所有依赖项的依赖项都存储在根 node_modules 文件夹中。

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

您的依赖项现在将最大程度地安装。在可能的情况下,您的所有依赖项及其依赖项以及它们的依赖项都将安装在您项目的 node_modules 文件夹中,没有嵌套。当两个(或更多)模块具有冲突的依赖关系时,您只会看到相互嵌套的模块。

于 2016-02-10T16:06:55.980 回答
0

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

于 2016-02-10T16:17:37.443 回答