When installing packages with Yarn, what does “incorrect peer dependency” mean?

。_饼干妹妹 提交于 2019-12-18 12:43:57

问题


I'm just cloned a repo, which recommends the use of Yarn to install dependencies. When I run yarn install, it seems to be okay, but it provides this warning:

yarn install v0.20.3
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "sass-loader@4.0.2" has incorrect peer dependency "node-sass@^3.4.2".
[4/4] 📃  Building fresh packages...
✨  Done in 77.59s.

I've looked online to find out exactly what "has incorrect peer dependency" means. But all I can find are reported issues on other repositories or questions about how to fix the problem.

Can someone explain what this means and why it is only a warning, and not an error?

Also, is it something that I should try to address or report to the community behind the repo I have just cloned?


回答1:


It is only a warning as it won't actually stop your code from running, It's just there to give you a heads up that there's something wrong with your dependencies.

Effectively, peer dependencies are a way for packages to specify, "to use me, you should also have x version of y package installed".

You should upgrade to the latest versions, see this link for more details on sass-loader dependencies




回答2:


I think that there are packages for which it doesn't make a big difference (if not exposed in your app or not likely that conflicting versions create problems, e.g. moment.js), but then there are packages, like React, for which it matters that all React dependencies are compatible with each other as they might create components that have to understand each other.

This article eplains very well what Peer Dependencies are and how to use them: https://blog.angularindepth.com/npm-peer-dependencies-f843f3ac4e7f

In your case, probably one of your dependencies uses sass-loader in a different version than you specify in your project.

By declaring it as a peerDependency you can tell npm which version your project expects and it will give you a warning (as you saw) when there is a conflict.



来源:https://stackoverflow.com/questions/42361942/when-installing-packages-with-yarn-what-does-incorrect-peer-dependency-mean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!