¿Cuáles son las diferencias entre composer update
y composer install
?
fuente
¿Cuáles son las diferencias entre composer update
y composer install
?
actualización del compositor
composer update
actualizará sus dependencias como se especifican en composer.json
Por ejemplo, si necesita este paquete como dependencia:
"mockery/mockery": "0.9.*",
y realmente ha instalado la 0.9.1
versión del paquete, la ejecución composer update
provocará una actualización de este paquete (por ejemplo 0.9.2
, si ya se ha lanzado)
en detalle composer update
:
composer.json
composer.json
composer.lock
para almacenar la versión de los paquetes instaladosinstalación del compositor
composer install
no actualizará nada; solo instalará todas las dependencias como se especifica en el composer.lock
archivo
En detalle:
composer.lock
existe el archivo (si no, ejecútelo composer-update
y créelo)composer.lock
archivocomposer.lock
archivoCuándo instalar y cuándo actualizar
composer update
se usa principalmente en la 'fase de desarrollo', para actualizar nuestros paquetes de proyecto de acuerdo con lo que hemos especificado en el composer.json
archivo,
composer install
se utiliza principalmente en la 'fase de implementación' para instalar nuestra aplicación en un servidor de producción o en un entorno de prueba, utilizando las mismas dependencias almacenadas en el archivo composer.lock creado por la actualización del compositor.
composer global update
actualiza las dependencias en su repositorio global en el sistema local (COMPOSER_HOME
variable env)composer update
en su sistema local y probar su aplicación, luego cargar el composer.lock en su servidor de producción y ejecutarcomposer install
Cuando lo ejecute
composer install
, buscará un archivo de bloqueo e instalará todo lo que contenga; si no puede encontrar uno, leerácomposer.json
, instalará sus dependencias y generará un archivo de bloqueo.Cuando lo ejecuta
composer update
, simplemente leecomposer.json
, instala las dependencias y actualiza el archivo de bloqueo (o crea un nuevo archivo de bloqueo).fuente
composer install
composer.lock
existecomposer.lock
archivo.composer.lock
lo hace , no existir.composer.json
.composer.lock
archivo basado en los paquetes instalados.Según
composer help install
:composer update
composer.json
archivo (instala, actualiza y elimina).composer.lock
archivo de acuerdo con los cambios.Según
composer help update
:Ver también: Compositor: se trata del archivo de bloqueo
fuente
La mejor diferencia entre
composer update
ycomposer install
instalación del compositor
Para agregar dependencias, debe agregarlo manualmente al archivo composer.json.
Si existe el archivo composer.lock, instale exactamente lo que se especifica en este archivo
No se actualizará ningún componente con este comando.
actualización del compositor
Para agregar o eliminar dependencias, debe agregarlo manualmente al archivo composer.json
Si no puede (o no sabe cómo agregar o eliminar una biblioteca que de hecho es fácil, simplemente agregue el nombre de la dependencia y la versión en la propiedad require del archivo) modifique el archivo composer.json manualmente o usted prefiero usar la línea de comando, el compositor tiene funciones especiales para esto:
compositor requiere
Por ejemplo, si queremos agregar una dependencia con la línea de comando, simplemente ejecutaremos
composer require twig/twig
compositor eliminar
Si desea eliminar una dependencia no utilizada, ejecutaremos simplemente:
composer remove twig/twig --update-with-dependencies
fuente
instalación del compositor
actualización del compositor
Por qué necesitamos 2 comandos. Creo que se puede explicar por composer.lock.
Imagínese, NO tenemos
composer.lock
y encomposer.json
, hay una dependencia"monolog/monolog": "1.0.*"
o"monolog/monolog": "^1.0"
.Entonces, tendrá algunos casos
composer install
en un momento diferente.¿Qué pasa si siempre usamos una versión EXACTA
composer.json
como en"monolog/monolog": "1.0.1"
?Todavía necesitamos
composer.lock
porquecomposer.json
solo rastrea la versión principal de su dependencia, no puede rastrear la versión de dependencias de dependencia.¿Qué pasa si todas las dependencias de dependencia también usan la versión EXACT?
Imagine que comienza con TODAS las dependencias que usan la versión EXACTA, entonces no le importa
composer.lock
. Sin embargo, unos meses después, agrega una nueva dependencia (o actualiza la antigua), y las dependencias de esta dependencia no usan la versión EXACT. Entonces es mejor cuidarcomposer.lock
al principio.Además de eso, hay una ventaja de una versión semántica sobre una versión exacta. Podemos actualizar la dependencia muchas veces durante el desarrollo y la biblioteca a menudo tiene algunos pequeños cambios, como la corrección de errores. Entonces es más fácil actualizar la dependencia que usa la versión semántica.
fuente