Composer - 使用包依赖项的自定义分支

问题描述 投票:0回答:1

我正在使用包teamtnt/laravel-scout-tntsearch-driver,我希望对teamtnt/tntsearch中的一个文件做一个非常小的更改,这是一个包依赖项。

通常我会:

  1. 创建包的分支。
  2. 将存储库添加到我的composer.json中,如下所示:
  "repositories": [
    {"type": "vcs", "url": "https://github.com/user/packagefork"}
  ],
  1. 要求/将软件包升级到正确的版本(通常是dev-master),保持原始名称间距,一切正常。

但是,由于我的composer.json文件中没有直接包含依赖项,这似乎不起作用。我是否需要分叉基础包和依赖包,即使我不需要更改基础内的任何内容?

我希望有一个简单的方法来做到这一点,而不必分叉每个级别。

composer-php
1个回答
1
投票

这其实很简单。不太确定为什么它原来不起作用!以下说明适合任何想知道:

  1. 叉包(即GitHub)
  2. 将您的用户名的repo添加到项目main composer.json中,如下所示:
  "repositories": [
    {"type": "vcs", "url": "https://github.com/youruser/tntsearch"}
  ],
  1. 编辑在步骤1中创建的新fork(youruser / tntsearch)中的composer.json文件,并创建/添加到extras键:
    "extra": {
        "branch-alias": {
            "dev-master": "2.0.x-dev"
        }
    }

这有效地允许您安装dev-master版本,但允许其他依赖的包请求2.0版本(在本例中)。在这种情况下,您需要小心,您已经分叉了正确的版本,并且以后正确管理任何升级,或者事情可能会中断!

有关composer alias here的更多信息

  1. 在dev-master版本中使用原始包命名空间要求/升级包。
composer require teamtnt/tntsearch:dev-master

名称间距和包版本将保持与fork之前相同,但fork的编辑将被拉入您的项目中。

© www.soinside.com 2019 - 2024. All rights reserved.