我有一个罕见的情况,因为我正在进行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"}]
- 您将Drupal的包装学家定义为Composer类型的repo
- 您可以为
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"
}
}