Gibt es eine Möglichkeit, Entwicklerabhängigkeiten mit Composer zu deinstallieren?

75

Ich möchte dev-Abhängigkeiten von einem Projekt deinstallieren (und nicht aus meiner composer.json entfernen).

Gibt es eine einfache Möglichkeit, dies zu tun?

Yohan G.
quelle

Antworten:

77

Laufen installoder updatemit --no-devsollte jetzt Entwicklungsanforderungen und deren Abhängigkeiten entfernen.

Ursprüngliche Antwort für historische Zwecke:

Nicht wirklich. Sie können sie natürlich manuell aus dem Herstellerverzeichnis rm -rf, aber Composer bietet keine Möglichkeit, die Entwicklungsanforderungen zu deinstallieren, nachdem Sie eine Installation mit --dev durchgeführt haben. Es ist kein großer Anwendungsfall, könnte aber einen neuen Befehlszeilenwechsel rechtfertigen, wenn Sie ein Problem auf github melden möchten.

Seldaek
quelle
9
Dieses Verhalten hat sich jetzt geändert. Sie müssen nur den Schalter --dev zum Composer-Update hinzufügen, um Entwicklerpakete physisch zu entfernen
Matt Humphrey
8
Nur um klar zu sein, ist der Befehl composer install --no-dev. Dadurch werden die verbleibenden Entwicklungspakete composer.jsonund die composer.lockintakten Dateien entfernt.
Meridius
45

Sie können den folgenden Befehl verwenden, nachdem Sie die Abhängigkeiten in der composer.jsonDatei entfernt haben.

composer update
Koray Güclü
quelle
2
Achten Sie darauf, dass dies dazu führen kann, dass alles, was in "erfordern" enthalten ist, deinstalliert und entfernt wird
agapitocandemor
25

Kam über diese Frage, als ich nach der gleichen Antwort suchte. Sie können jetzt installierte Entwicklungsabhängigkeiten deinstallieren, indem Sie einfach Folgendes tun:

composer --no-dev update

Es werden alle gefundenen Entwicklungspakete entfernt. Obwohl es Leute interessieren würde, die hier genauso landen wie ich :)

Blizz
quelle
Nicht die intuitivste Befehlszeilenoption ... aber es ist da! Vielen Dank!
13.
Es ist keine gute Idee, wenn Sie Versionen anderer Pakete nicht stark fixieren, da Sie nicht nur dev deps entfernen, sondern möglicherweise auch aktuelle Versionen anderer Pakete aktualisieren. Nicht konsistent für den Produktionsgebrauch.
Brutto
Sicher, aber das hat nichts mit der ursprünglichen Frage zu tun. Außerdem sollen Sie nie in der Produktion verwenden composer updateverwenden, immer composer installmit einer engagierten composer.lockDatei. Davon abgesehen: Sie können auch die Option für diesen Befehl verwenden. Bitte beziehen Sie sich auf die akzeptierte Antwort, die so geändert wurde, dass sie auch Folgendes enthält: Seldaek ist der Autor des Komponisten.
Blizz
6

Dies ist nicht die strenge Antwort, kann aber jemandem helfen.

So entfernen Sie eine bestimmte Entwicklungsabhängigkeit:

composer remove --dev squizlabs/php_codesniffer
SandroMarques
quelle
2

Ich antwortete später, aber es könnte jemand anderem helfen: composer remove friendsofsymfony/elastica-bundle(zum Beispiel)

Wille

William Rossier
quelle