Wie entferne ich ungenutzte Abhängigkeiten von Composer?

Lesezeit: 3 Minuten

Benutzer-Avatar
Lorenz Meier

Ich habe ein Paket mit Composer installiert und es wurden viele andere Pakete als Abhängigkeiten installiert.

Jetzt habe ich das Hauptpaket mit deinstalliert composer remove packageauthor/packagename, aber alle alten Abhängigkeiten wurden nicht entfernt. Ich habe erwartet, dass Composer aufräumt und nur Pakete behält, die entsprechend erforderlich sind composer.json und ihre Abhängigkeiten.

Wie kann ich Composer dazu zwingen, alle unbenutzten Pakete zu bereinigen und zu entfernen?

Benutzer-Avatar
Denis Pschenow

Der richtige Weg dazu ist:

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

Ich muss zugeben, dass die Flagge hier nicht ganz offensichtlich ist, was sie tun wird.

Aktualisieren

composer remove jenssegers/mongodb

Ab v1.0.0-beta2 --update-with-dependencies ist die Standardeinstellung und wird nicht mehr benötigt.

  • danke an @Yehosef für das Starten des Problems auf github, wo eine Lösung bereitgestellt wurde, aber da er seine Antwort nicht aktualisiert hat, habe ich beschlossen, meine eigene zu schreiben, um es allen bequemer zu machen

    – Denis Pschenow

    3. April 2015 um 18:52 Uhr

  • Danke, ich habe das Ende ihrer Diskussion nicht verstanden.

    – Lorenz Meyer

    4. April 2015 um 6:42 Uhr

  • Eine Sache zu beachten: Wenn Sie es bereits getan haben composer remove …‘d, aber das vergessen --update-with-dependencies bis Sie auf diese Frage stoßen – nachfolgende Anrufe an composer remove tötet nicht alle Abhängigkeiten. Sie müssen zurückkehren, Komponist installdann composer remove --update-with-dependencies

    – Mike G

    15. September 2015 um 6:23 Uhr

  • Jetzt bekomme ich folgende Meldung: 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

    – Pathos

    8. April 2016 um 18:00 Uhr

  • Wie sieht es mit der Bereinigung nach dem Entfernen eines Pakets aus? — Hier kommt die Antwort von @LorenzMeyer ins Spiel: composer update Daumen hoch für diese Antwort an @LorenzMeyer

    – Allen Linatoc

    7. Juni 2016 um 13:49 Uhr


Benutzer-Avatar
Lorenz Meier

Tatsächlich ist es sehr einfach.

composer update

wird all dies für Sie erledigen, aber es wird auch die anderen Pakete aktualisieren.

Um ein Paket zu entfernen, ohne die anderen zu aktualisieren, geben Sie dieses Paket im Befehl an, zum Beispiel:

composer update monolog/monolog

werde die entfernen monolog/monolog Paket.

Trotzdem können einige leere Ordner oder Dateien verbleiben, die nicht automatisch entfernt werden können und manuell entfernt werden müssen.

  • Der unglückliche Teil daran ist, dass es Sie dazu zwingt, Ihre Pakete zu aktualisieren, anstatt nur alte Versionen zu entfernen. Beispiel: Wenn ich zwei Pakete AAA/aaa ~1 und Version BBB/bbb ~2 habe und derzeit Version 1.0 von AAA/aaa habe und sie 1.1 veröffentlicht haben, dann werde ich automatisch aktualisiert, wenn ich BBB/bbb lösche (was möglicherweise nicht der Fall ist sein, was ich vorhatte..)

    – Yehosef

    16. Februar 2015 um 15:05 Uhr


  • Sie haben Recht. Wenn Sie eine bessere Lösung haben, kommen Sie zurück und posten Sie sie als Antwort.

    – Lorenz Meyer

    16. Februar 2015 um 15:23 Uhr

  • Ich weiß es noch nicht – ich möchte nur für andere auf einen Fallstrick dieses Ansatzes hinweisen.

    – Yehosef

    16. Februar 2015 um 16:33 Uhr

  • es sollte wirklich ein Flag auf dem Composer installiert werden.. so etwas wie --prune

    – Yehosef

    16. Februar 2015 um 16:36 Uhr


  • Wenn dir die Idee gefällt, kannst du darüber abstimmen – github.com/composer/composer/issues/3751

    – Yehosef

    16. Februar 2015 um 16:46 Uhr

Benutzer-Avatar
Max Wen

Die folgenden Befehle werden dasselbe perfekt tun

rm -rf vendor

composer install 

  • Dies scheint die sauberste Option zu sein. Löschen Sie das Vendors-Verzeichnis und lassen Sie Composer alles neu ziehen.

    – Machatität

    12. Juli 2018 um 16:29 Uhr

  • das ist npm “save my day” style 😉

    – r34

    27. März 2019 um 10:23 Uhr

  • composer install löscht automatisch ungenutzte Pakete

    – Yidir

    11. Juni 2019 um 0:45 Uhr

Renn einfach composer install – es wird Ihr machen vendor Verzeichnis reflektieren Abhängigkeiten in composer.lock Datei.

Mit anderen Worten – es wird jeder Anbieter gelöscht, der darin fehlt composer.lock.

Bitte aktualisieren Sie den Composer selbst, bevor Sie dies ausführen.

1362190cookie-checkWie entferne ich ungenutzte Abhängigkeiten von Composer?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy