composer: есть ли способ указать порядок предпочтений для репозиториев пакетов?

Я работаю с посылкой vendorName/moduleName (расширение Magento), которое присутствует на packagist и на firegento.

На моем composer.json файл, у меня есть:

"require": {
....................,
...................,
"vendorName/moduleName":"*"},
"repositories": [
......................,
....................,
{
"type": "composer",
"url": "https://packages.firegento.com"}
],

Как Composer загружен предварительно настроенный для использования packagist.org , vendorName/moduleName загружается из packagist,

Я хотел бы заставить vendorName/moduleName быть загруженным из firegento,

Я пытался добавить:

"repositories": [
{
"packagist": false
},

но тогда, composer больше не будет искать в packagist: это не то, что я хочу. (поскольку в packagist есть и полезные пакеты …)

Я думаю, я мог бы использовать

composer config --global --unset repositories.packagist

а потом

composer config --global repositories.firegento composer https://packages.firegento.com
composer config --global repositories.packagist composer https://packagist.org

добавить репозитории в моем предпочтительном порядке (я не уверен, что это работает …).

Есть ли лучший / более простой способ достичь моей цели? Я бы предпочел редактировать composer.json больше, чем запуск глобальных команд конфигурации, но, возможно, это невозможно.

3

Решение

Что ж,

Я думаю, что нашел ответ Вот:

Кандидаты в репозитории, в конце концов, оцениваются только в порядке их определения. Packagist внутренне добавляется как последний по определению (хотя вы можете отключить это), чтобы гарантировать, что локальные копии всегда предпочтительнее, если это разрешено настройками распознавателя.

Это означает, что если я определю firegento репо в моем composer.jsonтогда композитор загрузит пакет vendorName/moduleName в firegento до packagist, Я думал, что это было противоположное поведение; Я был неправ.

Еще один полезный комментарий Вот:

Порядок определения репозитория имеет значение. Но composer по-прежнему будет выполнять поиск во всех репозиториях независимо от того, что, возможно, позднее определенное хранилище будет иметь более свежую версию пакета, который вам требуется.

3

Другие решения

Других решений пока нет …