在本地覆盖编写器存储库

时间:2018-03-08 15:01:21

标签: git composer-php

目前我正在开发一个可在我的私有Packagist上使用的存储库X,这是生产版本。但是,出于开发速度的原因,我使用symlink / junction从同一项目中使用本地存储库。

类似的东西:

"repositories": [
    {
        "type": "path",
        "url": "../plataform"
    }
],

"require": {
    "project/x": "dev-master"
},

但是当我对此composer.json提交更改时,我需要始终将其修改为正确的存储库(删除repositories密钥并将dev-master修改为当前版本);

我的疑问是:有可能为此创建一些本地覆盖吗?我的意思是,一种方法可以包含一个本地存在的可选文件,但不能远程(生产服务器)来完成这项工作而不需要在提交之前进行编辑。

伪示例:

在正式提交时我应该有类似的东西:

"require": {
    "project/x": "~1.0"
},

"overrider": "composer.local.json"

然后如果overrider文件存在,那么它将由自己的composer合并。

composer.local.json文件应该像:

{
    "repositories": [
        {
            "type": "path",
            "url": "../plataform"
        }
    ],

    "require": {
        "project/x": "dev-master"
    }
}

1 个答案:

答案 0 :(得分:0)

我发现这个插件wikimedia/composer-merge-plugin完全解决了我的问题。经过测试和批准。

我只需要"replace": true功能,并包含我当地的composer.local.json文件。