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?
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.
composer remove jenssegers/mongodb
À compter de v1.0.0-beta2--update-with-dependencies
est la valeur par défaut et n'est plus requise.
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.
les commandes suivantes feront de même
rm -rf vendor
composer install
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.