使用Yarn安装软件包时,"不正确的对等依赖"意思?

时间:2017-02-21 08:16:08

标签: javascript dependencies dependency-management node-modules yarnpkg

我刚刚克隆了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.

我已经在网上查找确切的"有不正确的同伴依赖"手段。但我能找到的只是其他存储库中的问题或有关如何解决问题的问题。

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

此外,我应该尝试解决或报告我刚刚克隆的回购背后的社区吗?

2 个答案:

答案 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项目期望的版本,并且在发生冲突时会向您发出警告(如您所见)。