jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了纱线安装了2个版本的jquery.为什么,除了直接编辑yarn.lock之外我该怎么办?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
yarn add foo
yarn add jquery-form
yarn add jquery@2.2.4

foo声明依赖“jquery @> = 2.2.0< 3.0.0”,jquery-form声明jquery @> = 1.7.2

在我看来,我应该有jquery@2.2.4,但这是我的yarn.lock

jquery@2.2.4,"jquery@>=2.2.0 <3.0.0":
  version "2.2.4"
  resolved "..."

jquery@>=1.11.1,jquery@>=1.7.2:
  version "3.3.1"
  resolved ".."

因此,在产品中,jquery-form得到3.3.1而foo得到2.2.4.
我现在有2个不同的jqueries,这是不好的:)

我修好了

jquery@2.2.4,jquery@>=1.11.1,jquery@>=1.7.2,"jquery@>=2.2.0 <3.0.0":
  version "2.2.4"
  resolved "..."

现在2.2.4都恢复了一切.但我的yarn.lock不是你应该手动编辑的东西.

我该怎么解决

解决方法

TL; TR:“resolution”:package.json中的{“jquery”:“2.2.4”}

原始npm(3.0之前)用于以树模式安装所有依赖项(某种并排).在过去,如果模块A依赖于jquery-1而模块B依赖于jquery-2 npm,则执行以下操作

node_modules/A/node_modules/jquery-1
node_modules/B/node_modules/jquery-2

哪个适用于服务器,但不适用于客户端.因此他们使用了生成平面依赖关系的bower:每个库只有一个版本.开发商有责任解决所有冲突.

现在bower已被弃用,并且npm(3)和yarn都可以解决平面模式中的依赖关系id,但如果纱线不能这样做 – 你又有两个版本的jquery.

人们可以强迫纱线使用平面模式:纱线 – 平.它会询问你每一次冲突:

info Unable to find a suitable version for "jquery",please choose one by typing one of the numbers below:
 1) "jquery@2.2.4,jquery@>=2.2.0" which resolved to "2.2.4"
 2) "jquery@>=1.7.2,jquery@>=1.7.2" which resolved to "3.3.1"

我不知道为什么不能解决2.2.4(我们应该问semver作者我相信)),但是在这里点击2并且yarn会将你的选择保存到package.json(而不是yarn.lock!).

"author": "Foo","license": "UNLICENSED","resolutions": {
  "jquery": "2.2.4"
}

问题解决了.对所有客户端代码使用yarn –flat是很好的.

大佬总结

以上是大佬教程为你收集整理的纱线安装了2个版本的jquery.为什么,除了直接编辑yarn.lock之外我该怎么办?全部内容,希望文章能够帮你解决纱线安装了2个版本的jquery.为什么,除了直接编辑yarn.lock之外我该怎么办?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。