gpt4 book ai didi

php - Composer : How to override a requirement globally for composer. json?

转载 作者:可可西里 更新时间:2023-11-01 00:12:37 24 4
gpt4 key购买 nike

长话短说:

我的项目需要库 A,A 需要 B1。B1 坏了,但有一个 fork B2。我想实现 Composer 将安装 B2 而不是 B1,即使 A 需要 B1 而不是 B2。

怎么做?

更详细:

在 symfony 项目中,我们需要以下库:

"require": {
"emanueleminotto/twig-cache-bundle": "1.0.2",
}

本图书馆requires itself另一个当前损坏的库:

"require": {
"asm89/twig-cache-extension": "^1.3"
},

因为损坏的库已经存在 pull request超过 4 个月,但维护者拒绝合并它。

我的问题是,如果也可以覆盖子依赖项的依赖项,那么总是会使用修补后的分支而不是原始分支吗?

对于 asm89/twig-cache-extension,存在以下带有修复的分支:https://github.com/blackandred/twig-cache-extension

我试图将这个分支添加到我的 composer.json 并在“存储库”下显式注册该分支:

"repositories": [
{
"type": "git",
"url": "https://github.com/blackandred/twig-cache-extension"
}
],

并在我的 composer-json 中添加了依赖项,并将版本更改为“dev-master”:

"require": {
"asm89/twig-cache-extension": "dev-master",
"emanueleminotto/twig-cache-bundle": "1.0.2",
}

但是由于 emanueleminotto/twig-cache-bundle 仍然需要原始库, Composer 忽略了分支并安装了原始库。

有什么我可以在这里做的吗?

最佳答案

我相信文档有一个 good example对于这种情况。

基本上您需要在 composer.json 中定义一个别名,如下所示:

"require": {
"asm89/twig-cache-extension": "dev-master as 1.3",
"emanueleminotto/twig-cache-bundle": "1.0.2",
}

提问者补充:

仍然缺少一个步骤:"composer update asm89/twig-cache-extension"

关于php - Composer : How to override a requirement globally for composer. json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536516/

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