Каковы различия между composer update
и composer install
?
источник
Каковы различия между composer update
и composer install
?
обновление композитора
composer update
обновит ваши зависимости, как они указаны в composer.json
Например, если вам требуется этот пакет в качестве зависимости:
"mockery/mockery": "0.9.*",
и вы фактически установили 0.9.1
версию пакета, запуск composer update
приведет к обновлению этого пакета (например 0.9.2
, если он уже выпущен)
подробно composer update
расскажу:
composer.json
composer.json
composer.lock
для хранения версии установленных пакетовкомпозитор установить
composer install
не будет ничего обновлять; он просто установит все зависимости, указанные в composer.lock
файле
В деталях:
composer.lock
существует ли файл (если нет, запустите composer-update
и создайте его)composer.lock
файлcomposer.lock
файлеКогда устанавливать и когда обновлять
composer update
в основном используется в «фазе разработки», чтобы обновить наши пакеты проекта в соответствии с тем, что мы указали в composer.json
файле,
composer install
в основном используется на этапе развертывания для установки нашего приложения на производственном сервере или в среде тестирования, используя те же зависимости, которые хранятся в файле composer.lock, созданном обновлением composer.
composer global update
обновляет зависимости в вашем глобальном репозитории в локальной системе (COMPOSER_HOME
переменная env)composer update
свою локальную систему и протестировать свое приложение, затем загрузить composer.lock на свойcomposer install
При запуске
composer install
он ищет файл блокировки и устанавливает все, что в нем содержится, если он не может его найти, он читаетcomposer.json
, устанавливает свои зависимости и генерирует файл блокировки.При запуске
composer update
он просто читаетcomposer.json
, устанавливает зависимости и обновляет файл блокировки (или создает новый файл блокировки).источник
composer install
composer.lock
существует.composer.lock
файла.composer.lock
же не существует.composer.json
.composer.lock
файл на основе установленных пакетов.Согласно
composer help install
:composer update
composer.json
файла (устанавливает, обновляет и удаляет).composer.lock
файл в соответствии с изменениями.Согласно
composer help update
:Смотрите также: Composer: все дело в файле блокировки
источник
Лучшая разница между
composer update
иcomposer install
композитор установить
Чтобы добавить зависимости, вам нужно добавить их вручную в файл composer.json.
Если файл composer.lock существует, установите именно то, что указано в этом файле
Не любой компонент будет обновляться с помощью этой команды.
обновление композитора
Чтобы добавить или удалить зависимости, вам нужно добавить их вручную в файл composer.json.
Если вы не можете (или не знаете, как добавить или удалить библиотеку, что на самом деле просто, просто добавьте имя зависимости и версию в свойстве require файла), измените файл composer.json вручную или вы предпочтительнее использовать командную строку вместо этого, у композитора есть специальные функции для этого:
композитор требует
Например, если мы хотим добавить зависимость с помощью командной строки, мы просто выполним
composer require twig/twig
композитор удалить
Если вы хотите удалить неиспользуемую зависимость, мы просто выполним:
composer remove twig/twig --update-with-dependencies
источник
композитор установить
обновление композитора
Почему нам нужны 2 команды. Я думаю, что это может объяснить composer.lock.
Представьте себе, мы НЕ имеем
composer.lock
иcomposer.json
есть зависимость"monolog/monolog": "1.0.*"
или"monolog/monolog": "^1.0"
.Тогда будет несколько случаев
composer install
в другое время.Что если мы всегда будем использовать EXACT-версию,
composer.json
например"monolog/monolog": "1.0.1"
?Нам все еще нужно,
composer.lock
потому чтоcomposer.json
только отслеживать основную версию вашей зависимости, он не может отслеживать версию зависимости зависимости.Что если все зависимости также используют версию EXACT?
Представьте, что вы начинаете со ВСЕХ зависимостей, которые используют версию EXACT, тогда вам все равно
composer.lock
. Однако несколько месяцев спустя вы добавляете новую зависимость (или обновляете старую зависимость), и зависимости этой зависимости не используют версию EXACT. Тогда лучше позаботитьсяcomposer.lock
в начале.Кроме того, семантическая версия имеет преимущество перед точной версией. Мы можем обновлять зависимость много раз во время разработки, и библиотека часто имеет небольшие изменения, такие как исправление ошибки. Тогда проще обновить зависимость, которая использует семантическую версию.
источник