композитор.блокировка:как это работает?
-
12-12-2019 - |
Вопрос
Я пытаюсь понять эту часть: http://getcomposer.org/doc/02-libraries.md#lock-file
этот файл блокировки не окажет никакого влияния на другие проекты, которые от него зависят.Это влияет только на основной проект"
Означает ли это, что если проект P зависит от библиотеки A, а библиотека A зависит от библиотеки B v1.3, проект P не будет заботиться о версии библиотеки B и, возможно, вместо этого установит B 1.4?Какой тогда смысл?
Или это означает обратное, как и следовало ожидать от менеджера зависимостей?
Решение
Зависимости Composer определены в composer.json
.При первом запуске установки композитора или при запуске обновления композитора файл блокировки называется composer.lock
будет создан.
Цитируемая документация относится только к файлу блокировки.Если ваш проект P зависит от библиотеки A, а A зависит от B v1.3.***, то если A содержит файл блокировки, в котором говорится, что кто-то запустил «обновление композитора», в результате чего была установлена B v1.3.2, то установка A в ваш проект P все равно может установить 1.3.3, так как composer.json
(нет .lock
!) определил зависимость от версии 1.3.*.
Файлы блокировки всегда содержат точные номера версий и полезны для передачи версии, которую вы тестировали, коллегам или при публикации приложения.Для библиотек информация о зависимостях в composer.json
это все, что имеет значение.
Другие советы
composer.lock
записывает точные версии, которые установлены.Чтобы вы были в одних версиях со своими коллегами.
установка композитора
- Проверить
composer.lock
файл - Если нет, создайте автоматически
composer.lock
файл (используяcomposer update
) - Установите указанные версии, записанные в файле
composer.lock
файл
обновление композитора
- Пройдите через
composer.json
файл - Проверьте наличие новых (последних) версий на основе упомянутых критериев версии (например,1.12.*)
- Установите последние возможные (согласно указанным выше) версии.
- Обновлять
composer.lock
файл с установленными версиями
Итак, простой контрольный список.
Если вы хотите, чтобы все коллеги использовали те же версии, что и вы...
- Совершите свой
composer.lock
в GIT (или имеющийся у вас виртуальный компьютер) - Попросите других получить эту версию
composer.lock
файл - Всегда используйте
composer install
чтобы получить правильные зависимости
Если вы хотите обновить системные зависимости до новых версий
- Проверьте файл композитора.json на наличие спецификаций версии.
- Сделайте
composer update
- Это изменит
composer.lock
файл с новейшими версиями - Зафиксируйте это в GIT (или vcs)
- Попросите других получить это и
composer install
Дальше будет очень хорошее чтение
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
Наслаждайтесь силой composer.lock
файл!
Точка блокировки файла - записать точные версии, которые установлены, чтобы они могли быть восстановлены.Это означает, что если у вас есть спецификация версий 1. *, и ваш сотрудник работает composer update
, который устанавливает 1.2.4, а затем комбинирует файл Composer.lock, когда вы также получите 1.2.4, даже если 1.3.0 был выпущен.Это гарантирует, что все работают над проектом, имеет той же той той той той той точной версией. Чем больше здесь Composer: это все о файле блокировки