我遇到了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文件夹中拥有它们。
答案 0 :(得分:1)
节点包管理器(NPM)本身是一个模块,是的,确实有依赖关系。因此,您的问题的答案是肯定的,除了模块作为依赖项安装,而不是全局安装。模块NPM本身就是全局模块。