Instalé un paquete con Composer, e instaló muchos otros paquetes como dependencias.
Ahora desinstalé el paquete principal con composer remove packageauthor/packagename
, pero no se eliminaron todas las dependencias antiguas. Esperaba que el compositor limpiara y solo mantuviera los paquetes requeridos de acuerdo con composer.json
sus dependencias.
¿Cómo puedo forzar al compositor a limpiar y eliminar todos los paquetes no utilizados?
php
composer-php
Lorenz Meyer
fuente
fuente
composer remove …
, pero se olvidó--update-with-dependencies
hasta que tropezó con esta pregunta: las llamadas posteriores acomposer remove
no matarán todas las dependencias. Tendrá que revertir, compositorinstall
, entoncescomposer remove --update-with-dependencies
You are using the deprecated option "update-with-dependencies". This is now default behaviour. The --no-update-with-dependencies option can be used to remove a package without its dependencies
composer update
a esta respuesta a @LorenzMeyerDe hecho, es muy fácil.
hará todo esto por usted, pero también actualizará los otros paquetes.
Para eliminar un paquete sin actualizar los demás, especifique ese paquete en el comando, por ejemplo:
eliminará el
monolog/monolog
paqueteSin embargo, pueden quedar algunas carpetas o archivos vacíos que no pueden eliminarse automáticamente y que deben eliminarse manualmente.
fuente
--prune
los siguientes comandos harán lo mismo perfectamente
fuente
composer install
eliminará automáticamente los paquetes no utilizadosSimplemente ejecute
composer install
: hará que suvendor
directorio refleje las dependencias en elcomposer.lock
archivo.En otras palabras, eliminará a cualquier proveedor que falte
composer.lock
.Actualice el propio compositor antes de ejecutar esto.
fuente