Я работаю с посылкой 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
больше, чем запуск глобальных команд конфигурации, но, возможно, это невозможно.
Что ж,
Я думаю, что нашел ответ Вот:
Кандидаты в репозитории, в конце концов, оцениваются только в порядке их определения. Packagist внутренне добавляется как последний по определению (хотя вы можете отключить это), чтобы гарантировать, что локальные копии всегда предпочтительнее, если это разрешено настройками распознавателя.
Это означает, что если я определю firegento
репо в моем composer.json
тогда композитор загрузит пакет vendorName/moduleName
в firegento
до packagist
, Я думал, что это было противоположное поведение; Я был неправ.
Еще один полезный комментарий Вот:
Порядок определения репозитория имеет значение. Но composer по-прежнему будет выполнять поиск во всех репозиториях независимо от того, что, возможно, позднее определенное хранилище будет иметь более свежую версию пакета, который вам требуется.
Других решений пока нет …