我刚刚克隆了a 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.
我已经在网上查找确切的"有不正确的同伴依赖"手段。但我能找到的只是其他存储库中的问题或有关如何解决问题的问题。
有人可以解释这意味着什么,为什么它只是一个警告,而不是错误?
此外,我应该尝试解决或报告我刚刚克隆的回购背后的社区吗?
答案 0 :(得分:12)
这只是一个警告,因为它实际上不会阻止您的代码运行,只是在那里让您了解您的依赖项有问题。
实际上,对等依赖关系是包指定的一种方式,“使用我,你也应该安装x包的y版本。”
您应升级到最新版本,有关sass-loader依赖关系的更多详细信息,请参阅此link
答案 1 :(得分:3)
我认为有些程序包并没有太大的不同(如果您的应用程序中未公开这些程序包,或者不太可能版本冲突会产生问题,例如moment.js),那么还有一些程序包,例如React,重要的是,所有React依赖项必须彼此兼容,因为它们可能会创建必须相互理解的组件。
本文很好地说明了对等依赖关系以及如何使用它们: https://blog.angularindepth.com/npm-peer-dependencies-f843f3ac4e7f
在您的情况下,可能您的一个依赖项使用的sass-loader
版本与项目中指定的版本不同。
通过将其声明为peerDependency
,您可以告诉npm项目期望的版本,并且在发生冲突时会向您发出警告(如您所见)。