web-dev-qa-db-fra.com

Comment supprimer les dépendances inutilisées du composeur?

J'ai installé un paquet avec composer, et de nombreux autres paquets ont été installés en tant que dépendances.

Maintenant, j'ai désinstallé le paquet principal avec composer remove packageauthor/packagename, mais toutes les anciennes dépendances n'ont pas été supprimées. Je m'attendais à ce que composer nettoie et ne conserve que les paquets nécessaires en fonction de composer.json et de leurs dépendances.

Comment puis-je forcer composer à nettoyer et à supprimer tous les packages inutilisés?

176
Lorenz Meyer

La bonne façon de faire est:

composer remove jenssegers/mongodb --update-with-dependencies

Je dois admettre que le drapeau ici n'est pas tout à fait évident quant à ce qu'il va faire.

Mise à jour

composer remove jenssegers/mongodb

À compter de v1.0.0-beta2--update-with-dependencies est la valeur par défaut et n'est plus requise.

331
Denis Pshenov

En fait, c'est très facile.

composer update

fera tout cela pour vous, mais il mettra également à jour les autres paquets.

Pour supprimer un package sans mettre à jour les autres, spécifiez ce package dans la commande, par exemple:

composer update monolog/monolog

supprime le package monolog/monolog.

Néanmoins, il peut rester des dossiers vides ou des fichiers qui ne peuvent pas être supprimés automatiquement et qui doivent être supprimés manuellement.

27
Lorenz Meyer

les commandes suivantes feront de même

rm -rf vendor

composer install 
15
Max Wen

Il suffit de lancer composer install pour que votre répertoire vendor reflète les dépendances dans le fichier composer.lock.

En d'autres termes, tous les fournisseurs manquants dans composer.lock seront supprimés.

Veuillez mettre à jour le composer lui-même avant de l'exécuter.

9
Valentas