Ich habe ein Paket mit Composer installiert, und es hat viele andere Pakete als Abhängigkeiten installiert.
Jetzt habe ich das Hauptpaket mit composer remove packageauthor/packagename
Deinstalliert, aber alle alten Abhängigkeiten wurden nicht entfernt. Ich habe erwartet, dass composer aufräumt und nur Pakete aufbewahrt, die gemäß composer.json
Und ihren Abhängigkeiten erforderlich sind.
Wie kann ich composer zum Bereinigen und Entfernen aller nicht verwendeten Pakete zwingen?
Der richtige Weg dazu ist:
composer remove jenssegers/mongodb --update-with-dependencies
Ich muss zugeben, dass die Flagge hier nicht ganz klar ist, was sie tun wird.
composer remove jenssegers/mongodb
Ab v1.0.0-beta2--update-with-dependencies
ist die Standardeinstellung und wird nicht mehr benötigt.
In der Tat ist es sehr einfach.
composer update
all dies wird für Sie erledigt, aber es werden auch die anderen Pakete aktualisiert.
Um ein Paket zu entfernen, ohne die anderen zu aktualisieren, geben Sie dieses Paket im Befehl an, zum Beispiel:
composer update monolog/monolog
entfernt das Paket monolog/monolog
.
Es können jedoch leere Ordner oder Dateien verbleiben, die nicht automatisch entfernt werden können und die manuell entfernt werden müssen.
die folgenden Befehle machen dasselbe perfekt
rm -rf vendor
composer install
Führen Sie einfach composer install
Aus - Ihr vendor
-Verzeichnis spiegelt die Abhängigkeiten in der Datei composer.lock
Wider.
Mit anderen Worten - es wird jeder Anbieter gelöscht, der in composer.lock
Fehlt.
Bitte aktualisieren Sie den composer selbst, bevor Sie diesen ausführen.