J'ai installé un package avec composer, et il a installé de nombreux autres packages en tant que dépendances.
Maintenant, j'ai désinstallé le package principal avec composer remove packageauthor/packagename
, mais toutes les anciennes dépendances n'ont pas été supprimées. Je m'attendais à ce que le compositeur nettoie et ne conserve que les packages requis selon composer.json
et leurs dépendances.
Comment puis-je forcer Composer à nettoyer et supprimer tous les packages inutilisés?
php
composer-php
Lorenz Meyer
la source
la source
composer remove …
, mais--update-with-dependencies
que vous l'avez oublié jusqu'à ce que vous tombiez sur cette question - les appels ultérieurs àcomposer remove
ne tueront pas toutes les dépendances. Vous devrez revenir, compositeurinstall
, puiscomposer 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
à cette réponse à @LorenzMeyerEn fait, c'est très simple.
fera tout cela pour vous, mais il mettra également à jour les autres packages.
Pour supprimer un package sans mettre à jour les autres, spécifiez ce package dans la commande, par exemple:
supprimera le
monolog/monolog
paquet.Néanmoins, il peut rester des dossiers ou fichiers vides qui ne peuvent pas être supprimés automatiquement et qui doivent être supprimés manuellement.
la source
--prune
les commandes suivantes feront la même chose parfaitement
la source
composer install
supprimera automatiquement les packages inutilisésExécutez simplement
composer install
- cela fera en sorte que votrevendor
répertoire reflète les dépendances dans lecomposer.lock
fichier.En d'autres termes, il supprimera tout fournisseur manquant
composer.lock
.Veuillez mettre à jour le compositeur lui-même avant de l'exécuter.
la source