gpt4 book ai didi

yarnpkg - 在 yarn 工作区中,如何强制解决子项目的依赖项?

转载 作者:行者123 更新时间:2023-12-04 14:38:08 26 4
gpt4 key购买 nike

我使用的库支持另一个具有广泛版本的库作为对等依赖项。不幸的是,工作区的子项目之一拉入了与使用库的子项目不同的版本。结果,他们最终需要不同的版本。

我正在尝试使用选择性分辨率来处理这个问题并强制它使用正确的版本( https://yarnpkg.com/lang/en/docs/selective-version-resolutions/ ),但我没有任何运气。

我可能误解了如何利用这些。

我目前的设置是我有一个根工作区,里面有这些 child :
项目 A package.json(这是问题的根源):

   dependencies: {
backbone.marionette: '2.4.1'
}

项目 B package.json(这是有问题的应用程序):
  dependencies: {
backbone.marionette: '1.8.8',
@organization/UILibrary: '0.0.22'
}

@organization/UILibrary(在工作区之外) package.json 看起来像这样:
  peerDependencies: {
backbone.marionette: ">= 1 < 3"
}

不幸的是,即使项目 B 不依赖于项目 A,当@organization/UILibrary 被拉入项目 B 时,它会根据它的需要获得 2.4.1 版的 Backbone.marionette(而项目 B 的本地要求是 1.8.8)。

我尝试使用分辨率将项目 B package.json 更新为:
   dependencies: {
backbone.marionette: '1.8.8',
@organization/UILibrary: '0.0.22'
},
{
"resolutions": {
"@organization/**/backbone.marionette": "1.8.8",
"@organization/backbone.marionette": "1.8.8",
"@organization/UILibrary/backbone.marionette: "1.8.8",
"@organization/UILibrary/**/backbone.marionette: '1.8.8"
}

有任何想法吗?基于对 yarn 问题的一些挖掘以及它们的一些选择性依赖 PR(参见 https://github.com/yarnpkg/yarn/issues/4874 ),我相信这可能是由于 UILibrary 是有范围的(有斜线)。

最佳答案

我最近遇到了类似的事情;我发现的是 resolutions仅适用于根 package.json .尝试移动 resolutions在那里而不是在包 B 中。

关于yarnpkg - 在 yarn 工作区中,如何强制解决子项目的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54120149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com