npm:孩子的依赖来自哪里?
我在github上读到 :
grunt-mocha-test使用npm的Peer Dependenciesfunction
我不确定什么是“同辈依赖”,所以我检查了npm文档,发现:
作为一个包pipe理器,npm是非常棒的。 特别是,它很好地处理了子依赖:如果我的包依赖于请求版本2和其他库
我的意思是:
- 具有“同等依赖性”意味着依赖性可能需要其他依赖性才能正常工作。
- npm创build一个类似于结构的树,其中依赖关系是根,并且根依赖关系具有子依赖关系
我留下的问题是:
儿童依赖从何而来? 他们是复制的吗? 还是它们引用了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
包(ex 4.0.0
)的特定版本,也会发生这种情况。
尽pipe看起来有点多余,但我认为这会使依赖pipe理变得容易很多,而现在通常使用的额外空间应该可以忽略不计。