3

我想将作曲家存储库配置分解为不同的文件。

我使用本地和外部存储库,我想将它们的配置分开。

然后,在运行安装或更新任务时,这些文件将被拉入主 composer.json。

这可能吗?

4

2 回答 2

2

现在有一个名为composer-merge-plugin 的插件,它可以在运行时合并多个 composer 文件。

用法:

假设您的主composer.json文件位于基本路径中,然后您有其他composer.json文件要从以下子目录中加载/plugins

/
|-- composer.json
|-- /plugins
    |-- /kittenizer
        |-- composer.json
    |-- /puppyizer
        |-- composer.json

在你的主composer.json文件中,你可以加载这些:

{
    "require": {
        "wikimedia/composer-merge-plugin": "~1"
    },
    "extra": {
        "merge-plugin": {
            "include": [
                "plugins/*/composer.json"
            ],
            "recurse": true,
            "replace": false,
            "merge-dev": true,
            "merge-extra": false
        }
    }
}
于 2016-06-24T02:02:54.443 回答
2

我参加聚会已经很晚了,但是我遇到了类似的问题,并且在没有作曲家插件的情况下解决了它。

/root
|-- composer.json
|-- /vendor
|-- /more-composer-dependencies
    |-- composer.json

您在根目录中的作曲家文件:

{
    "repositories": [
        {
            "type": "path",
            "url": "more-composer-dependencies"
        }
    ],
    "require": {
        "something/more-dependencies": "dev-master"
    }
}

您在其他目录 ( more-composer-dependencies) 中的作曲家文件必须至少包含以下内容:

{
    "name": "something/more-dependencies"
}

您现在可以composer install在您的根目录中,并且在您的子文件夹中指定的任何内容都composer.json将放在您的根目录的供应商文件夹中。

❗ 警告:只有 root 的 composer.json 可以包含存储库元数据,而不是子文件夹 ( composer-doc ) 中的元数据。

旁注:在我的情况下,子目录中的 composer.json 是可克隆的资源。我使用 composer hook pre-install-cmd来确保“更多依赖项”是现有的并且是最新的。

于 2021-01-04T12:54:42.707 回答