684 Stimmen

Wie kann ich ein Paket aus Laravel mithilfe von PHP Composer entfernen?

Was ist der richtige Weg, ein Paket aus Laravel mit PHP Composer zu entfernen?

Bisher habe ich folgendes versucht:

  1. Entfernen Sie die Deklaration aus der Datei composer.json (im Abschnitt "require")
  2. Entfernen Sie alle Klassenaliase aus der Datei app.php
  3. Entfernen Sie alle Verweise auf das Paket aus meinem Code :-)
  4. Führen Sie composer update aus
  5. Führen Sie composer dump-autoload aus

Keine dieser Optionen funktioniert! Was fehlt mir?

1109voto

steadweb Punkte 13489

Composer 1.x und 2.x

Wenn Sie den folgenden Befehl ausführen, wird das Paket aus dem Entwicklungsverzeichnis entfernt (oder wo auch immer Sie Pakete installieren), composer.json und composer.lock. Passen Sie vendor/package entsprechend an.

composer remove vendor/package

Sie müssen natürlich auch Verweise auf das Paket in Ihrer App entfernen.

Ich verwende derzeit die folgende Version von Composer:

Composer version 1.0-dev (7b13507dd4d3b93578af7d83fbf8be0ca686f4b5) 2014-12-11 21:52:29

Dokumentation

https://getcomposer.org/doc/03-cli.md#remove-rm

Aktualisierungen

  • 27/12/2023 - URL zur remove-rm Dokumentation korrigiert
  • 26/10/2020 - Antwort aktualisiert, um zu behaupten, dass der Befehl für v1.x und v2.x von Composer funktioniert

216voto

igaster Punkte 11393

Ich habe es zum Laufen gebracht... Die Schritte zum Entfernen eines Pakets aus Laravel sind:

  1. Entfernen Sie die Deklaration aus der Datei composer.json (im Abschnitt "require")
  2. Entfernen Sie den Service Provider aus der Datei config/app.php (Verweis im Array "providers")
  3. Entfernen Sie alle Klassen-Aliase aus der Datei config/app.php
  4. Entfernen Sie alle Verweise auf das Paket aus Ihrem Code :-)
  5. Führen Sie composer update vendor/package-name aus. Dadurch wird der Paketordner aus dem vendor Ordner entfernt und die Composer-Autolademappe neu erstellt.
  6. Löschen Sie manuell die veröffentlichten Dateien (lesen Sie den Kommentar von zwacky)

Es wird den Paketordner aus dem Vendor Ordner entfernen.

63voto

Yevgeniy Afanasyev Punkte 32229

Normalerweise reicht es aus, composer remove auf diese Weise zu verwenden:

composer remove vendor/package

Aber wenn ein Composer-Paket entfernt wird und der "config"-Cache nicht bereinigt wird, können Sie ihn nicht bereinigen. Wenn Sie es so versuchen

php artisan config:clear

können Sie einen Fehler erhalten In ProviderRepository.php Zeile 208:

Klasse 'Laracasts\Flash\FlashServiceProvider' nicht gefunden

Das ist eine Sackgasse, es sei denn, Sie löschen Dateien:

Laravel 5.6

rm bootstrap/cache/config.php

Laravel 9

rm bootstrap/cache/packages.php

Es passiert normalerweise bei automatisierten Bereitstellungen, wenn Sie Dateien einer neuen Version über den alten Cache kopieren. Selbst wenn Sie den Cache vor dem Kopieren gelöscht haben. Sie enden mit einem alten Cache und einer neuen composer.json Datei.

40voto

Shahrukh Anwar Punkte 2308

Sie können ein beliebiges Paket einfach entfernen, indem Sie folgenden Befehl im Terminal eingeben, und entfernen Sie einfach die Anbieter und Aliase, die Sie bei der Installation des Pakets angegeben haben, sofern vorhanden, und aktualisieren Sie den Composer.

composer remove vendor/ihr_paketname
composer update

24voto

Vic Iyke Punkte 391

Laufen

composer remove package/name
php artisan optimize:clear

z.B. "Composer remove mckenziearts/laravel-notify" funktioniert für mich bei der Verwendung von Laravel 8.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X