我全新安装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
构建失败)并且必须手动安装它们。同时,安装了很多依赖项,所以我不明白为什么会错过一些(当它们可以手动安装时)
答案 0 :(得分:21)
Here是关于依赖类型的一些有用的读物,而here是关于对等依赖关系的信息,但总结一下:
依赖:项目需要运行的库/包 对等依赖:用于指示项目将挂钩的库/包。
包vue-loader
对vue-template-compiler
具有对等依赖关系 - vue-loader
充当vue-template-compiler
Peer依赖关系自动安装到npm@3(纱线已经跟进)。由于经常混淆行为而停止了这一点。例如,安装另一个具有冲突要求的插件会导致错误。
我们还将在npm @ 3中更改peerDependencies的行为。我们不会再自动下载对等依赖项了。相反,如果尚未安装对等依赖项,我们将警告您。这需要您自己手动解决peerDependency冲突,但从长远来看,这将使您不太可能最终陷入与包的依赖关系的棘手问题。 [2015年2月13日]