我正在使用一个库,该库支持另一个版本广泛的对等依赖项库。不幸的是,工作区的一个子项目引入了与使用该库的子项目不同的版本。结果,它们最终需要不同的版本。
我正在尝试使用选择性分辨率来解决此问题,并强制其使用正确的版本(https://yarnpkg.com/lang/en/docs/selective-version-resolutions/),但我没有任何运气。
可能是我误会了如何利用它们。
我当前的设置是我有一个内部工作区,其中包含这些子级: 项目A package.json(这是问题的根源):
var player1 = prompt(" Welcome Player 1! Please Enter your name ");
alert(" Hello, " + player1 + ".");
var p1score1 = parseFloat(prompt(' Enter first score. '));
var p1score2 = parseFloat(prompt(' Enter second score. '));
var p1score3 = parseFloat(prompt(' Enter third score. '));
var p1avgScore = (p1score1 + p1score2 + p1score3) / 3;
console.log(" Congratulations " + player1 + ". Your scores are: " +
p1score1 + ", " + p1score2 + ", " + p1score3 + ".");
console.log(" Your average score of all three games are: " +
p1avgScore);
项目B package.json(有问题的应用程序):
dependencies: {
backbone.marionette: '2.4.1'
}
@ organization / UILibrary(位于工作空间外部)package.json如下所示:
dependencies: {
backbone.marionette: '1.8.8',
@organization/UILibrary: '0.0.22'
}
不幸的是,即使项目B不依赖于项目A,当@ organization / UILibrary被拉入项目B时,它也获得了所需的marionette marionette版本2.4.1(而项目B的本地需求为1.8.8)。 )。
我尝试使用分辨率是将Project B package.json更新为:
peerDependencies: {
backbone.marionette: ">= 1 < 3"
}
有什么想法吗?基于对纱线问题的一些了解以及对它们的一些选择性依赖关系PR(请参阅https://github.com/yarnpkg/yarn/issues/4874),我认为这可能是由于UILibrary具有范围(带有斜线)的事实所致。
答案 0 :(得分:0)
我最近遇到了类似的事情;我发现resolutions
仅在根package.json
中有效。尝试将resolutions
移动到那里,而不要移动到程序包B中。