使用Yarn安装软件包时,“不正确的对等依赖性”是什么意思?


75

我刚刚克隆了一个repo,建议使用Yarn安装依赖项。当我运行时yarn install,似乎还可以,但是它提供了以下警告:

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.

我一直在网上寻找以找出“具有不正确的对等依赖性”的含义。但是我所能找到的都是其他存储库上已报告的问题,或有关如何解决该问题的问题。

有人可以解释这意味着什么,为什么它只是警告,而不是错误?

另外,是我应该尝试解决的问题还是向我刚刚克隆的回购背后的社区报告?

Answers:


27

这只是一个警告,因为它实际上并不会阻止您的代码运行。它只是在提醒您依赖项有问题。

有效地,对等依赖性是软件包指定的一种方式,“要使用我,您还应该安装y软件包的x版本”。

您应该升级到最新版本,有关此内容的详细信息,请参见此链接


12
在我的项目,我有: less: 3.0less-loader: 4.0.5安装。在运行时,webpack我得到: less-loader@4.0.6" has incorrect peer dependency "less@^2.3.1" 为什么谈论他,less-loader@4.0.6因为我已经4.0.5安装了?
传奇

5

我认为有些软件包没有什么大的不同(如果未在您的应用程序中暴露出来,或者不太可能版本冲突会产生问题,例如moment.js),但是还有一些软件包,例如React,重要的是所有React依赖项彼此兼容,因为它们可能会创建必须相互理解的组件。

在您的情况下,可能您的一个依赖项所使用sass-loader的版本与项目中指定的版本不同。

通过将其声明为a,peerDependency您可以告诉npm您的项目期望哪个版本,并且在发生冲突时会警告您(如您所见)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.