安装带纱线的包装时,“未满足的同行依赖性”是什么意思?

时间:2017-10-25 09:11:27

标签: yarnpkg

我全新安装yarn(通过npm install yarn -g)并试图安装一些包

yarn add vue-loader babel-loader style-loader css-loader file-loader webpack

我在安装过程中收到了一些警告,例如

warning "vue-loader@13.3.0" has unmet peer dependency "vue-template-compiler@^2.0.0".

这究竟意味着什么,具体而言:为什么yarn不自行安装这些依赖项?(如果需要的话)

同一主题的sister question(约npm)会产生一些答案,建议i)更新npm ii)删除node_modules因为存在错误关于处理依赖关系的npm

yarn中此类警告的状态是什么? 这真的是一个警告(=我可以丢弃的东西)?我不能丢弃它们(webpack构建失败)并且必须手动安装它们。同时,安装了很多依赖项,所以我不明白为什么会错过一些(当它们可以手动安装时)

1 个答案:

答案 0 :(得分:21)

什么是对等依赖

Here是关于依赖类型的一些有用的读物​​,而here是关于对等依赖关系的信息,但总结一下:

依赖:项目需要运行的库/包 对等依赖:用于指示项目将挂钩的库/包。

vue-loadervue-template-compiler具有对等依赖关系 - vue-loader充当vue-template-compiler

的插件

为什么不默认安装

Peer依赖关系自动安装到npm@3(纱线已经跟进)。由于经常混淆行为而停止了这一点。例如,安装另一个具有冲突要求的插件会导致错误。

  

我们还将在npm @ 3中更改peerDependencies的行为。我们不会再自动下载对等依赖项了。相反,如果尚未安装对等依赖项,我们将警告您。这需要您自己手动解决peerDependency冲突,但从长远来看,这将使您不太可能最终陷入与包的依赖关系的棘手问题。 [2015年2月13日]