使用 Yarn 安装包时,“不正确的对等依赖”是啥意思?

Posted

技术标签:

【中文标题】使用 Yarn 安装包时,“不正确的对等依赖”是啥意思?【英文标题】:When installing packages with Yarn, what does "incorrect peer dependency" mean?使用 Yarn 安装包时,“不正确的对等依赖”是什么意思? 【发布时间】:2017-07-10 18:11:52 【问题描述】:

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

我在网上查看了“具有不正确的对等依赖性”的确切含义。但我能找到的只是其他存储库上报告的问题或有关如何解决问题的问题。

谁能解释这意味着什么以及为什么它只是一个警告,而不是一个错误?

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

【问题讨论】:

可能重复:***.com/questions/46928390/… 【参考方案1】:

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

实际上,对等依赖项是包指定的一种方式,“要使用我,您还应该安装 x 版本的 y 包”。

您应该升级到最新版本,有关 sass-loader 依赖项的更多详细信息,请参阅link

【讨论】:

在我的项目中,我安装了: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【参考方案2】:

我认为有些包并没有太大的区别(如果没有在您的应用程序中公开或者冲突版本不太可能产生问题,例如 moment.js),但是还有一些包,比如 React,重要的是所有 React 依赖项相互兼容,因为它们可能会创建必须相互理解的组件。

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

通过将其声明为peerDependency,您可以告诉 npm 您的项目需要哪个版本,并且当发生冲突时它会向您发出警告(如您所见)。

【讨论】:

我想知道它是否是说 package.json 中的信息列出了错误的依赖项 那是它从中获取信息的地方,不是吗?仅从读取 package.json 文件就无需关心安装了哪些 node_modules 未包含在 package.json 中

以上是关于使用 Yarn 安装包时,“不正确的对等依赖”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pip 安装 python 包时星号 * 的用途是啥

安装 npm 包时 /src 是啥意思?

添加包时删除依赖项

yarn代替npm yarn的优点与官网

yarn-cli 添加

锁文件解释,每一行到底是啥意思?纱线锁