Composer挂钩以修复包版本


Composer hook to fix package version

我需要在composer安装过程中挂接,以修复根包的二级依赖关系版本。也就是说,我的包依赖于一些包(有正确的版本),但这些包依赖于其他包,并且它的版本是"错误的"。我试图使用预包安装钩子来修补这样的版本,但它对我不起作用,安装程序:prePackageInstall中的代码没有执行。

根包composer.json如下所示:

{
    "name": "***/root-package",
    "repositories": [ { "type": "composer", "url": "http://***/packages.json" } ],
    "require": {
        "***/first-level-dep-1": "dev-release-XX",
        "***/first-level-dep-2": "dev-release-XX"
    },
    "scripts": {
        "pre-package-install": [
            "root-package''Installer::prePackageInstall"
        ]
    }
}

一级依赖composer.json如下所示:

{
    "name": "***/first-level-dep-1",
    "repositories": [ { "type": "composer", "url": "http://***/packages.json" } ],
    "require": {
        "***/second-level-dep-1": "*",  // !!! here is my problem
        "***/second-level-dep-2": "*"
    }
}

在安装过程中,我需要将*替换为适当的版本。

您不必"修复"那个版本。您只需在正确的版本中添加第二级dep作为您自己的依赖项,情况就解决了。

如果一级依赖项需要该软件包的ANY版本,那么您将根据正确的版本将可安装版本限制为您允许的版本。