Composer 中不可调和的依赖关系

问题描述 投票:0回答:1

我有两个 Composer 包,它们需要相同依赖项的不同版本。我找到了像this这样的答案,可以帮助我诊断问题,但不能帮助我解决问题。

套餐A(

amphp/phpunit-util
)需要
phpunit/phpunit ^9
; 套餐 B(自制)需要
phpunit/phpunit ^11

我在

require
命令上寻找某种选项,该选项允许以“沙盒”方式安装所需版本的软件包,这样只有软件包 A 会使用旧版本,而其他软件包可以使用旧版本新的。我找不到任何东西,除非自动加载魔法,这似乎是可以实现的。

我有什么选择?我可以加载

phpunit ^11
但以某种方式说服软件包 A
phpunit ^9
可用吗?

php composer-php amphp
1个回答
0
投票

可以通过确保不同版本始终位于使用它们的包的composer.json 的

require-dev
部分来解决包树中的冲突。那么下游包将不会尝试加载它们。

在这种情况下这是有道理的,因为每个包的测试范围应该限于包本身。

© www.soinside.com 2019 - 2024. All rights reserved.