在运行“npm install”时,是否将NPM放在依赖内?

所以我有一个package.json,看起来像这样:

{ "name": "node-api", "main": "server.js", "dependencies": { "express": "~4.0.0", "mongoose": "~3.6.13", "body-parser": "~1.0.1" } } 

当我在Ubuntu上运行“npm install”时,我在node_modules中得到了一个树形结构,如下所示:

 . ├── body-parser │  ├── lib │  │  └── types │  └── node_modules │  ├── bytes │  ├── content-type │  ├── debug │  │  └── node_modules │  ├── depd │  │  └── lib │  ├── http-errors │  │  └── node_modules │  ├── iconv-lite │  │  ├── encodings │  │  └── lib │  ├── on-finished │  │  └── node_modules │  ├── qs │  │  ├── dist │  │  ├── lib │  │  └── test │  ├── raw-body │  │  └── node_modules │  └── type-is │  └── node_modules ├── express │  ├── lib │  │  ├── middleware │  │  └── router │  └── node_modules │  ├── accepts │  │  └── node_modules │  ├── array-flatten │  ├── content-disposition │  ├── content-type │  ├── cookie │  ├── cookie-signature │  ├── debug │  │  └── node_modules │  ├── depd │  │  └── lib │  ├── escape-html │  ├── etag │  ├── finalhandler │  │  └── node_modules │  ├── fresh │  ├── merge-descriptors │  ├── methods │  ├── on-finished │  │  └── node_modules │  ├── parseurl │  ├── path-to-regexp │  ├── proxy-addr │  │  └── node_modules │  ├── qs │  │  ├── lib │  │  └── test │  ├── range-parser │  ├── send │  │  └── node_modules │  ├── serve-static │  ├── type-is │  │  └── node_modules │  ├── utils-merge │  └── vary └── mongoose ├── examples │  ├── aggregate │  ├── express │  │  └── connection-sharing │  ├── geospatial │  ├── globalschemas │  ├── lean │  ├── mapreduce │  ├── population │  ├── promises │  ├── querybuilder │  ├── replicasets │  ├── schema │  │  └── storing-schemas-as-json │  └── statics ├── lib │  ├── drivers │  │  ├── browser │  │  └── node-mongodb-native │  ├── error │  ├── schema │  ├── services │  └── types └── node_modules ├── async │  └── lib ├── bson │  ├── alternate_parsers │  ├── browser_build │  ├── lib │  └── tools ├── hooks-fixed ├── kareem │  └── test ├── mongodb │  ├── lib │  ├── node_modules │  └── test_boot ├── mpath │  ├── lib │  └── test ├── mpromise │  ├── lib │  └── test ├── mquery │  ├── lib │  ├── node_modules │  └── test ├── ms ├── muri │  ├── lib │  └── test ├── regexp-clone │  └── test └── sliced ├── lib └── test 

123目录我只显示目录树的4级深度,但最高级别只是我的packages.json中的3个“依赖”。 我喜欢这个,因为它保持了一切美好和有组织。

这是它在我的Mac上显示的方式:

 . ├── accepts ├── array-flatten ├── async ├── bluebird ├── body-parser ├── bson ├── bytes ├── content-disposition ├── content-type ├── cookie ├── cookie-signature ├── core-util-is ├── debug ├── depd ├── destroy ├── ee-first ├── es6-promise ├── escape-html ├── etag ├── express ├── finalhandler ├── forwarded ├── fresh ├── hooks-fixed ├── http-errors ├── iconv-lite ├── inherits ├── ipaddr.js ├── isarray ├── kareem ├── media-typer ├── merge-descriptors ├── methods ├── mime ├── mime-db ├── mime-types ├── mongodb ├── mongodb-core ├── mongoose ├── mpath ├── mpromise ├── mquery ├── ms ├── muri ├── negotiator ├── on-finished ├── parseurl ├── path-to-regexp ├── proxy-addr ├── qs ├── range-parser ├── raw-body ├── readable-stream ├── regexp-clone ├── send ├── serve-static ├── sliced ├── statuses ├── string_decoder ├── type-is ├── unpipe ├── utils-merge └── vary 

我个人讨厌这个问题,因为如果你的项目变大了,你就不能说出为什么某个依赖关系存在,而且它可以很快地变得混乱。

两台电脑都运行npm 2.14.7和节点4.2.2。 有没有什么办法让它存储在我显示的第一棵树的结构中的依赖关系?