当我进入我的项目和npm install express时 - 保存它不仅会将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
答案 0 :(得分:2)
您可能正在运行npm版本3或更高版本。这个版本使得所有依赖项的依赖项都存储在根node_modules文件夹中。
有关详细信息,请参阅此处:https://github.com/npm/npm/releases/tag/v3.0.0
您的依赖项现在将最大程度地安装。在可能的情况下,所有依赖项及其依赖项和它们的依赖项都将安装在项目的node_modules文件夹中,而不进行嵌套。当两个(或更多)模块具有冲突的依赖关系时,您将只看到彼此嵌套的模块。
答案 1 :(得分:0)
这是正常的,您尝试安装的模块必须具有自己的依赖项才能正常工作,因此它们会在您的node_modules中同时安装