Установка только новых пакетов из composer.json
Я пытаюсь заставить композитора обновлять только недавно добавленные пакеты composer.json
т.е. когда я вручную добавляю зависимость пакета к composer.json
файл, он должен обновить composer.lock
файл только для нового пакета; остальные пакеты должны быть в той же версии, что и раньше. Я пробовал бегать composer update --lock
но я не думаю, что он делает то, что я пытаюсь достичь, и потребовалось много времени, чтобы закончить. Я проверил команды в документации композитора, но не могу найти команду, которая бы соответствовала моему желанию. Любые советы или обходные пути будут оценены.
Примечание: я использую Laravel Forge, поэтому существует ограничение на развертывание 2 минуты.
3 ответа
Чтобы установить только новые пакеты с composer, вам нужно запуститьcomposer install
Так как composer update
установит ваши новые пакеты, но обновит и все остальные уже установленные пакеты.
Вы можете указать имя пакета в качестве аргумента update
команда. Это выполнит частичное обновление: composer update the-package/you-want-to-update
Я думаю, что ваш вопрос связан с вашим (предположенным) текущим рабочим процессом: чтобы добавить новый пакет, вы редактируете composer.json
файл, а затем запустить composer update
- желающих только добавить / обновить этот новый файл.
Если это правда, вот решение:
composer require new/package
добавит самую новую возможную версию (с учетом установленных на данный момент пакетов) нового пакета. Преимущества: только одна командная строка, и не нужно возиться с содержимым JSON.
Если вы уже знаете, какую версию вы хотите, вы также можете запустить composer require new/package:^2.1.25@beta
(или какую бы версию и уровень стабильности вы ни выбрали - этот пример немного преувеличивает). Если эта версия несовместима с существующими пакетами, ничего не будет установлено, все откатится, и вы получите сообщение об ошибке.