I read on github that:
grunt-mocha-test使用npm的对等依赖功能
我不确定什么是“ Peer Dependencies”,所以我检查了npm文档并发现:
npm作为软件包管理器很棒。特别是它处理
子依赖关系很好:如果我的软件包依赖于请求版本2
和其他图书馆
我的意思是:
具有“对等依赖项”意味着依赖项可能需要其他
依赖关系才能正常运行。
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
),也会发生这种情况。尽管看起来有些多余,但我想这会使依赖性管理容易得多,如今,通常使用的额外空间应该可以忽略不计。
关于node.js - npm:子项依赖关系从何而来?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29087049/