npm:子依赖项来自哪里?
npm: Where do the children dependencies come from?
grunt-mocha-test uses npm's Peer Dependencies functionality
我不确定 "Peer Dependencies" 是什么,所以我检查了 npm 文档并发现:
npm is awesome as a package manager. In particular, it handles
sub-dependencies very well: if my package depends on request version 2
and some-other-library
我的意思是:
- 'peer dependencies' 意味着依赖项可能需要其他
依赖项才能正常运行。
- npm 创建一个树状结构,其中依赖是根,
并且根依赖项具有子依赖项
我剩下的问题是:
子依赖从哪里来?它们是副本吗?或者他们是
对 package.json?
中已存在的其他依赖项的引用
他们每个人都有一份包裹。例如,如果您有一个具有这些依赖项的项目:
"dependencies": {
"node-handlebars": "*",
"less-file": "*",
"async-ls": "*",
"promise": "4.0.0"
}
和 运行 npm install
,你将有 4 个 promise
的副本(你声明为依赖项的副本和其他每个依赖项需要的 3 个副本)
$ find . -name promise
./node_modules/async-ls/node_modules/promise
./node_modules/promise
./node_modules/node-handlebars/node_modules/promise
./node_modules/less-file/node_modules/promise
请注意,即使每个人都依赖于特定版本的 promises
软件包(例如 4.0.0
),也会发生这种情况。
尽管看起来有点多余,但我想这会使依赖管理变得容易得多,现在通常使用的额外 space 应该可以忽略不计。
grunt-mocha-test uses npm's Peer Dependencies functionality
我不确定 "Peer Dependencies" 是什么,所以我检查了 npm 文档并发现:
npm is awesome as a package manager. In particular, it handles sub-dependencies very well: if my package depends on request version 2 and some-other-library
我的意思是:
- 'peer dependencies' 意味着依赖项可能需要其他 依赖项才能正常运行。
- npm 创建一个树状结构,其中依赖是根, 并且根依赖项具有子依赖项
我剩下的问题是:
子依赖从哪里来?它们是副本吗?或者他们是 对 package.json?
中已存在的其他依赖项的引用他们每个人都有一份包裹。例如,如果您有一个具有这些依赖项的项目:
"dependencies": {
"node-handlebars": "*",
"less-file": "*",
"async-ls": "*",
"promise": "4.0.0"
}
和 运行 npm install
,你将有 4 个 promise
的副本(你声明为依赖项的副本和其他每个依赖项需要的 3 个副本)
$ find . -name promise
./node_modules/async-ls/node_modules/promise
./node_modules/promise
./node_modules/node-handlebars/node_modules/promise
./node_modules/less-file/node_modules/promise
请注意,即使每个人都依赖于特定版本的 promises
软件包(例如 4.0.0
),也会发生这种情况。
尽管看起来有点多余,但我想这会使依赖管理变得容易得多,现在通常使用的额外 space 应该可以忽略不计。