如何在composer中使用与另一个包同名的包



我有一个罕见的情况,因为我正在进行Drupal项目,所以这里有两个packagits。我有https://packagist.org和http://packagist.drupal-composer.org/.

这里的问题是,它们都定义了drupal/coder包。其中一个尊重composer.json,另一个不尊重,但生成了一个。我正在修复在这里创建一个问题,告诉他们尊重composer.json是可用的。

我想使用packagist.org中的包,但由于我定义了packagist.drupal-composer.org,我无法使用。

有没有一种方法可以识别来自特定来源的包,或者重新定义已经有包的存储库。

我试着添加

{
  "type": "vcs",
  "url": "http://git.drupal.org/project/coder.git"
}

在我的存储库中没有用。做一个composer update; composer show只是向我展示来自packagist.drupal-composer.org的包。此外,定义:

{
  "type": "composer",
  "url": "http://packagist.org"
}

为我提供了相同的结果。

我的最后一个想法是定义一个"包",并用不同的名称将其指向存储库,但这似乎是一个蹩脚的解决方案,因为这样我就必须维护"版本"。

是的,这肯定是个问题。但这里有一个变通方法,只需将packagegist.drupal-composer.org上面的包定义转换为composer.json.

"存储库":[{"type":"composer","url":"https://packagist.org/p/drupal/coder.json"},{"type":"composer","url":"http://packagist.drupal-composer.org"}]
  1. 您将Drupal的包装学家定义为Composer类型的repo
  2. 您可以为drupal/coder回购定义一个git回购

这两个定义都包含在repository部分中。

现在:所有包都是从http://packagist.drupal-composer.org/,drupal/coder除外。

给你:

{
    "type": "project",
    "repositories": [
        {
            "type": "git",
            "url": "http://git.drupal.org/project/coder.git"
        },
        {
            "type": "composer",
            "url": "packagist.drupal-composer.org"
        }
    ],
    "require": {
        "drupal/coder": "8.2.1"
    }
}

相关内容

  • 没有找到相关文章