grunt-mocha-test使用npm的Peer Dependencies功能
我不确定“Peer Dependencies”是什么,所以我检查了npm文档并发现:
npm作为包管理器非常棒。特别是,它处理 子依赖关系非常好:如果我的包依赖于请求版本2 和其他一些图书馆
我的意思是:
我留下的问题是:
子项依赖项来自哪里?它们是复制品吗?或者是他们 对package.json中已存在的其他依赖项的引用?
答案 0 :(得分:1)
他们每个人都会有一份包裹。例如,如果您有一个包含这些依赖项的项目:
"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
),也会发生这种情况。
尽管看起来有点多余,但我认为这使得依赖管理变得更加容易,而现在使用的额外空间应该可以忽略不计。