Composer установить только с composer.lock

Я недавно установил PHP-приложение с файлом composer.lock.

При запуске composer install, инструмент командной строки все еще запрашивает composer.json.... У меня нет.

В документации composer сказано, что команда install сначала ищет composer.lock, а затем composer.json.

Почему composer по-прежнему запрашивает файл, который не нужен для установки моих зависимостей?

composer install> возвращает: Composer не смог найти файл composer.json

2 ответа

Решение

Вы должны иметь composer.json установить зависимости, потому что это файл, в котором перечислены сами зависимости. Обратитесь к документации.

composer.lock перечисляет зависимости, которые уже были установлены. Композитор сначала изучает его, чтобы сохранить согласованность версий.

(Документация гласит) [ https://getcomposer.org/doc/01-basic-usage.md#installing-with-composer-lock%5D:

запуск install при наличии файла composer.lock разрешает и устанавливает все зависимости, перечисленные в composer.json, но Composer использует точные версии, перечисленные в composer.lock, чтобы обеспечить совместимость версий пакетов для всех, кто работает над вашим проектом.

Если вы потеряли свой composer.json Вы можете перепроектировать свой composer.lock, Откройте его и прочитайте все установленные пакеты, затем создайте composer.json что требует их. Не каждый пакет будет прямой зависимостью для вашей проблемы: вы должны идентифицировать и удалить те, которые не являются.

Вам все еще нужен файл composer.json для установки или обновления любых зависимостей. Наличие файла composer.lock означает, что composer не будет искать последние коммиты зависимостей

Несколько недель назад в Твиттере я заметил, что у проекта OpenCFP нет файла composer.lock в его хранилище. "Ну и что, - скажете вы, - просто установите композитор и все готово. Вы получите те же зависимости, не так ли?

Смысл файла блокировки - записать точные версии, которые установлены, чтобы их можно было переустановить. Это означает, что если у вас есть спецификация версии 1. *, и ваш коллега запускает обновление composer, которое устанавливает 1.2.4, а затем фиксирует файл composer.lock, при установке composer вы также получите 1.2.4, даже если 1.3.0 был выпущен. Это гарантирует, что все работающие над проектом имеют одинаковую точную версию.

Источник: Композитор: это все о блокировке файла

Другие вопросы по тегам