NPM在安装后是否加载某些模块(供自己使用)?

时间:2013-09-29 02:06:39

标签: node.js npm

我遇到了NPM的一些问题所以我决定简单地卸载Node,NPM& NVM然后在Mac OS X 10.8上重新安装所有内容。在遵循各种指南和Stackoverflow问题后,我非常确定我已经摆脱了一切。但令我惊讶的是,在我第一次安装NVM然后安装了Node(我为我安装了NPM)后,我无法理解为什么运行npm -g ls会显示许多不同的模块,这些模块在查看NPM注册表后看起来像是非常基本的助手和样板模块,其他更高级的模块建立在其上。以下是它打印出来的整个模块列表:

unknownd8a25e8b001d:~ [username]$ npm -g ls
/Users/[username]/.nvm/v0.10.18/lib
└─┬ npm@1.3.8
  ├── abbrev@1.0.4
  ├── ansi@0.1.2
  ├── archy@0.0.2
  ├── block-stream@0.0.7
  ├── child-process-close@0.1.1
  ├── chmodr@0.1.0
  ├── chownr@0.0.1
  ├── cmd-shim@1.0.1
  ├── editor@0.0.4
  ├── fstream@0.1.24
  ├─┬ fstream-npm@0.1.5
  │ └── fstream-ignore@0.0.7
  ├── github-url-from-git@1.1.1
  ├── glob@3.2.6
  ├── graceful-fs@2.0.0
  ├── inherits@2.0.0
  ├── ini@1.1.0
  ├─┬ init-package-json@0.0.11
  │ └── promzard@0.2.0
  ├── lockfile@0.4.0
  ├── lru-cache@2.3.0
  ├─┬ minimatch@0.2.12
  │ └── sigmund@1.0.0
  ├── mkdirp@0.3.5
  ├── node-gyp@0.10.9
  ├── nopt@2.1.2
  ├─┬ npm-registry-client@0.2.28
  │ └── couch-login@0.1.18
  ├── npm-user-validate@0.0.3
  ├─┬ npmconf@0.1.2
  │ └─┬ config-chain@1.1.7
  │   └── proto-list@1.2.2
  ├── npmlog@0.0.4
  ├── once@1.1.1
  ├── opener@1.3.0
  ├── osenv@0.0.3
  ├─┬ read@1.0.5
  │ └── mute-stream@0.0.4
  ├── read-installed@0.2.3
  ├─┬ read-package-json@1.1.1
  │ └─┬ normalize-package-data@0.2.1
  │   └── github-url-from-git@1.1.1
  ├─┬ request@2.25.0
  │ ├── aws-sign@0.3.0
  │ ├── cookie-jar@0.3.0
  │ ├── forever-agent@0.5.0
  │ ├─┬ form-data@0.1.0
  │ │ ├── async@0.2.9
  │ │ └─┬ combined-stream@0.0.4
  │ │   └── delayed-stream@0.0.5
  │ ├─┬ hawk@1.0.0
  │ │ ├── boom@0.4.2
  │ │ ├── cryptiles@0.2.2
  │ │ ├── hoek@0.9.1
  │ │ └── sntp@0.2.4
  │ ├─┬ http-signature@0.10.0
  │ │ ├── asn1@0.1.11
  │ │ ├── assert-plus@0.1.2
  │ │ └── ctype@0.5.2
  │ ├── json-stringify-safe@5.0.0
  │ ├── mime@1.2.10
  │ ├── node-uuid@1.4.0
  │ ├── oauth-sign@0.3.0
  │ ├── qs@0.6.5
  │ └── tunnel-agent@0.3.0
  ├── retry@0.6.0
  ├── rimraf@2.2.2
  ├── semver@2.1.0
  ├─┬ sha@1.2.1
  │ └── readable-stream@1.0.2
  ├── slide@1.1.4
  ├── tar@0.1.18
  ├── uid-number@0.0.3
  └── which@1.0.5

所以我的问题是,NPM在安装时是否安装了各种全局模块供自己使用?它确实看起来像是缩进,好像这些是npm使用的模块,因为它们嵌套在npm@1.3.8下面,而使用Finder我可以看到NPM如何在它自己的node_modules文件夹中拥有它们。

1 个答案:

答案 0 :(得分:1)

节点包管理器(NPM)本身是一个模块,是的,确实有依赖关系。因此,您的问题的答案是肯定的,除了模块作为依赖项安装,而不是全局安装。模块NPM本身就是全局模块。