Quais são as diferenças entre composer update
e composer install
?
fonte
Quais são as diferenças entre composer update
e composer install
?
atualização do compositor
composer update
atualizará suas dependências conforme especificadas em composer.json
Por exemplo, se você precisar deste pacote como uma dependência:
"mockery/mockery": "0.9.*",
e você realmente instalou a 0.9.1
versão do pacote, a execução composer update
causará uma atualização deste pacote (por exemplo 0.9.2
, se já tiver sido lançado)
em detalhes composer update
:
composer.json
composer.json
composer.lock
para armazenar a versão dos pacotes instaladosinstalação do compositor
composer install
não atualizará nada; apenas instalará todas as dependências conforme especificado no composer.lock
arquivo
Em detalhe:
composer.lock
arquivo existe (se não, execute composer-update
e crie)composer.lock
arquivocomposer.lock
arquivoQuando instalar e quando atualizar
composer update
é usado principalmente na 'fase de desenvolvimento', para atualizar nossos pacotes de projetos de acordo com o que especificamos no composer.json
arquivo,
composer install
é usado principalmente na 'fase de implementação' para instalar nosso aplicativo em um servidor de produção ou em um ambiente de teste, usando as mesmas dependências armazenadas no arquivo composer.lock criado pela atualização do compositor.
composer global update
atualizações dependências em seu repositório global sobre sistema local (COMPOSER_HOME
variável env)composer update
no seu sistema local e testar seu aplicativo, depois fazer upload do composer.lock no servidor de produção e executarcomposer install
Quando você executa,
composer install
ele procura um arquivo de bloqueio e instala o que estiver contido nele, se não conseguir encontrar um, ele lerácomposer.json
, instalará suas dependências e gerará um arquivo de bloqueio.Quando você executa,
composer update
ele simplesmente lêcomposer.json
, instala as dependências e atualiza o arquivo de bloqueio (ou cria um novo arquivo de bloqueio).fonte
composer install
composer.lock
existe.composer.lock
arquivo.composer.lock
não não existe.composer.json
.composer.lock
arquivo com base nos pacotes instalados.Conforme
composer help install
:composer update
composer.json
arquivo (instala, atualiza e remove).composer.lock
arquivo de acordo com as alterações.Conforme
composer help update
:Veja também: Compositor: tudo sobre o arquivo de bloqueio
fonte
A melhor diferença entre
composer update
ecomposer install
instalação do compositor
Para adicionar dependências, você precisa adicioná-lo manualmente ao arquivo composer.json.
Se o arquivo composer.lock existir, instale exatamente o que está especificado nesse arquivo
Nenhum componente será atualizado com este comando.
atualização do compositor
Para adicionar ou remover dependências, você deve adicioná-lo manualmente ao arquivo composer.json
Se você não pode (ou não sabe como adicionar ou remover uma biblioteca que é de fato fácil, basta adicionar o nome da dependência e da versão na propriedade requerida do arquivo) modificar o arquivo composer.json manualmente ou você prefira usar a linha de comando, o compositor possui funções especiais para isso:
compositor exige
Por exemplo, se queremos adicionar uma dependência com a linha de comando, simplesmente executaremos
composer require twig/twig
compositor remover
Se você deseja remover uma dependência não utilizada, executaremos simplesmente:
composer remove twig/twig --update-with-dependencies
fonte
instalação do compositor
atualização do compositor
Por que precisamos de 2 comandos. Eu acho que isso pode explicar pelo compositor.lock.
Imagine, nós não temos
composer.lock
e dentrocomposer.json
, há uma dependência"monolog/monolog": "1.0.*"
ou"monolog/monolog": "^1.0"
.Então, terá alguns casos
composer install
em um horário diferente.E se sempre usarmos uma versão EXATA
composer.json
como"monolog/monolog": "1.0.1"
?Ainda precisamos
composer.lock
porque,composer.json
apenas rastreamos a versão principal da sua dependência, ele não pode rastrear a versão das dependências da dependência.E se todas as dependências da dependência também usarem a versão EXACT?
Imagine que você começa com TODAS as dependências que usam a versão EXACT e não se importa
composer.lock
. No entanto, alguns meses depois, você adiciona uma nova dependência (ou atualiza uma dependência antiga) e as dependências dessa dependência não usam a versão EXACT. Então é melhor cuidarcomposer.lock
do começo.Além disso, há uma vantagem de uma versão semântica sobre uma versão exata. Podemos atualizar a dependência várias vezes durante o desenvolvimento e a biblioteca geralmente apresenta algumas pequenas alterações, como a correção de bugs. Então é mais fácil atualizar a dependência, que usa a versão semântica.
fonte