编辑器依赖项包更改



如何通过修改我自己项目的 composer.json 文件来修改外部包的 composer.json 文件?

这仅用于测试目的。我需要测试一个包是否与另一个包的新版本兼容。

我的项目作曲家.json:

{
    "require": {
        "foo/framework": "1.2.0",
        "bar/extension": "1.1.0"
    }
}

外部包 ( bar/extension ) composer.json:

{
    "require": {
        "foo/framework": "1.2.0"
    }
}

所以这显然有效。但是假设我想拥有新版本的foo/framework,这是1.3.0。这不起作用,因为bar/extension取决于旧版本。

仅使用项目的 composer.json,如何更改bar/extension包的要求?

您可以使用

package类型的存储库覆盖composer.json依赖项。在您的composer.json中添加以下内容(应调整 URL):

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "bar/extension",
            "version": "1.1.0",
            "dist": {
                "url": "https://github.com/bar/extension/archive/1.1.0.zip",
                "type": "zip"
            },
            "require": {
                 "foo/framework": "1.2.0 || 1.3.0"
            }
            // rest of necessary settings from original bar/extension composer.json 
        }
    }
],

请注意,package类型非常不灵活,并且会产生许多问题 - 我不建议将其用于测试以外的任何其他用途。在实践中,最好只分叉包并使用vcs存储库在您的项目中使用它 - 您将能够对包进行必要的调整并作为上游的拉取请求提出(或永久使用 fork)。

主要

思想,如果bar/extension依赖于旧版本,则不应使用较新版本的foo/framework,因为它可能与较新版本不兼容,并且会导致应用程序中的错误。

但是,如果bar/extension版本范围,并且您想使用此范围内的最新版本,则可以使用 conflict 指令指定它。

或者您甚至可以尝试替换指令。

相关内容

  • 没有找到相关文章

最新更新