Jak usunąć pakiet z Laravela za pomocą kompozytora?


402

Jaki jest właściwy sposób na usunięcie pakietu z Laravel 4? Tak długo próbowałem:

  1. Usuń deklarację z composer.json(w sekcji „wymagaj”)
  2. Usuń wszystkie aliasy klas z app.php
  3. Usuń wszelkie odniesienia do paczki z mojego kodu :-)
  4. Biegać composer update
  5. Biegać composer dump-autoload

Nie działa! Czy coś brakuje?

Niektóre pakiety publikują konfigurację za pomocą „konfiguracji rzemieślnika: opublikuj ...”. Czy istnieje sposób ich „cofnięcia publikacji”?

Odpowiedzi:


594

Uruchomienie następującego polecenia spowoduje usunięcie pakietu od dostawcy (lub gdziekolwiek instalujesz pakiety), composer.json i composer.lock. Zmień odpowiednio dostawcę / paczkę.

composer remove vendor/package

Oczywiście musisz usunąć odniesienia do tego pakietu w swojej aplikacji.

Obecnie korzystam z następującej wersji kompozytora:

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

13
A następnie uruchom, composer updateaby usunąć folder dostawcy / pakietu od dostawcy
Zeshan

11
Aktualizacja kompozytora ZeshanKhattak zaktualizuje wszystkie zależności. W ten sposób projekt pozostaje w niestabilnym stanie. Nie używaj aktualizacji kompozytora, chyba że chcesz zaktualizować zależności
zarax

11
composer remove packagename, Aktualizuje usuwanie pakietu z composer.json i usuwa folder pakietu od dostawcy ... laravel - 5.4.24, kompozytor - 1.4.2.

Wygląda na to, że kompozytor automatycznie instaluje brakujące pakiety po uruchomieniu composer remove <package>. W każdym razie, aby tego uniknąć? Korzystanie z wersji 1.7.2.
Olle Härstedt

powinno to być: kompozytor usuń zamiast tego nazwę_pakietu: kompozytor usuń sprzedawcę / pakiet nie jest potrzebny dostawca, ponieważ laravel automatycznie sprawdza pakiety w katalogu dostawcy.
prashant

171

Mam działające ... Kroki, aby usunąć pakiet z Laravel to:

  1. Usuń deklarację z composer.json (w sekcji „wymagają”)
  2. Usuń usługodawcę z „app / config / app.php” (odwołanie w tablicy „dostawców”)
  3. Usuń wszelkie aliasy klas z „app / config / app.php”
  4. Usuń wszelkie odniesienia do paczki z kodu :-)
  5. Uruchom „dostawcę aktualizacji kompozytora / nazwa-pakietu”. Spowoduje to usunięcie folderu pakietu z folderu „vendor” i przebuduje mapę autoloadowania kompozytora.
  6. Ręcznie usuń opublikowane pliki (przeczytaj komentarz zwacky)

Spowoduje to usunięcie folderu pakietu z folderu „Dostawca”


2
chociaż cofnięcie publikacji zasobów / konfiguracji nie jest tak naprawdę zautomatyzowane. Zazwyczaj ręcznie usuwam foldery dostawcy / pakietu w config / lub public /.
zwacky

7
teraz laravel powinien wymyślić coś takiego: „usuń paczkę <nazwa_pakietu>”, aby to ułatwić.
Chandan Gupta

19
Problem z tym rozwiązaniem polega na tym, że zaktualizuje on wszystkie inne pakiety, co może nie być tym, czego chcesz.
tremby

3
composer remove vendor/packageMyślę, że (1) i (5) można zastąpić bieganiem .
JCarlosR

Dziękujemy, ta instrukcja była przydatna do usunięcia niedziałającego pakietu motywu Igaster / laravel
Jjsg08,

59

Uruchom następujące polecenie

composer remove Vendor/Package Name

To wszystko. Nie wymaga aktualizacji kompozytora. Nazwa dostawcy / paczki to katalog, który został zainstalowany wcześniej


1
Zrobiłem to i mówi, że jej już nie potrzebuje w composer.json tak „ignorowanie”
Słodka Chilly Philly

1
composer remove <packageName>Myślę, że ten jest idealny do usuwania wszelkich pakietów. Zapomnij o Vendor:) Na przykładcomposer remove laravel/tinker
Shamsul Huda

43

Zwykle composer removeużywane w ten sposób wystarczy:

$ composer remove vendor/package

ale jeśli pakiet kompozytora zostanie usunięty, a pamięć podręczna konfiguracji nie zostanie wyczyszczona, nie będzie można jej wyczyścić, gdy spróbujesz

php artisan config:clear

możesz otrzymać błąd In ProviderRepository.php line 208:

Nie znaleziono klasy „Laracasts \ Flash \ FlashServiceProvider”

jest to ślepy zaułek, chyba że usuniesz pliki

$rm bootstrap/cache/config.php

I to jest Laravel 5.6, o którym mówię, a nie jakieś bardzo stare rzeczy.

Zdarza się to zwykle podczas automatycznego wdrażania, gdy kopiujesz pliki nowej wersji na starą pamięć podręczną. Nawet jeśli wyczyścisz pamięć podręczną przed kopiowaniem. Skończysz ze starą pamięcią podręczną i nowym plikiem composer.json.


2
Myślę, że jest to naprawione w 5.7
Jewgienij Afanasyjew

1
W wersji 5.6 mój bootstrap / cache był pusty. Zapomniałem, że zmieniłem ścieżkę pamięci podręcznej (config / cache.php)! Usunięcie plików z nowego folderu pamięci podręcznej rozwiązało problem!
Aine

2
@YevgeniyAfanasyev To nie jest naprawione Nawet w 5.7
Shreyansh Panchal

2
Prawie spędziłem 3 godziny na ciągnięciu za to włosów. Myślałem, że config:clearto naprawię.
Shreyansh Panchal

34

możesz usunąć dowolny pakiet, wpisując następujące polecenie w terminalu, i po prostu usuń dostawców i alias podany podczas instalacji pakietu, jeśli takie istnieją, i zaktualizuj kompozytora,

composer remove vendor/your_package_name
composer update

1
Czasami, aby zaktualizować nowe zależności, musisz zaktualizować kompozytora. Myślę, że nie ma nic złego w prowadzeniu tego.
Shahrukh Anwar

18

Możesz wykonać jedną z dwóch poniższych metod:

  1. Uruchomienie poniższego polecenia (najbardziej zalecany sposób na usunięcie pakietu bez aktualizacji innych pakietów)

    $ composer remove vendor/package

  2. Przejdź do pliku composer.json, a następnie uruchom polecenie jak poniżej, aby usunąć pakiet (ale zaktualizuje również inne pakiety)

    $ composer update


17

Przed usunięciem pakietu z deklaracji composer.json usuń pamięć podręczną

php artisan cache:clear  
php artisan config:clear 

Jeśli zapomnisz usunąć pamięć podręczną i pojawi się błąd „nie znaleziono klasy”, zainstaluj ponownie pakiet, wyczyść pamięć podręczną i usuń ponownie.


16

Najprostszy i najłatwiejszy sposób

Składnia:

composer remove <package>

Przykład:

composer remove laravel/tinker

15

Jeśli po wykonaniu wszystkich powyższych kroków nadal pojawia się błąd, przejdź do swoich projektów bootstrap->cache->config.phpręcznie usuń wpisy dostawcy i aliasy z tablicy buforowanej.


To mi pomogło.
Peter Griffin

1
Niektórzy dostawcy pakietów nie spełniają wszystkich wymagań, aby utworzyć pakiet. Z tego powodu ci dostawcy composer remove vendor/packagenie mogą poprawnie usunąć wpisów w pamięci podręcznej. Więc @Ramjith Ap ma tutaj absolutną rację.
Samrat Khan,

12

**

użyj „kompozytora usuń dostawcę / pakiet”

** To jest przykład: Zainstaluj / dodaj pakiet

composer require firebear/importexportfree

Uninsall / Remove

composer remove firebear/importexportfree

Ostatecznie po usunięciu:

php -f bin/magento setup:upgrade

php bin/magento setup:static-content:deploy f

php bin/magento indexer:reindex 

php -f bin/magento cache:clean

9

Aby usunąć pakiet za pomocą polecenia kompozytora

composer remove <package>

Aby zainstalować pakiet za pomocą polecenia kompozytora

composer require <package>

Aby zainstalować wszystkie pakiety wymienione w pliku composer.json

composer install

Aby zaktualizować pakiety

composer update

Użyłem ich do projektu Laravel


9

Możesz usunąć dowolny pakiet, wpisując następujące polecenie w terminalu, i po prostu usuń dostawców i alias podany podczas instalacji pakietu i zaktualizuj kompozytora

composer remove <package_name>
composer update

8

Jeśli podane odpowiedzi nadal nie pomogą Ci tego usunąć, spróbuj tego:

  • Ręcznie usuń linię requirezcomposer.json

  • Biegać composer update


3

Mamy świetne rozwiązanie. To rozwiązanie jest praktycznie zrobione w Laravel 6. Jeśli chcesz usunąć dowolny pakiet z projektu Laravel, możesz łatwo usunąć pakiet, wykonując następujące czynności:

Krok 1: Musisz znać nazwę pakietu, który chcesz usunąć. Jeśli nie znasz pełnej nazwy pakietu, możesz otworzyć folder projektu, przejść do composer.jsonpliku i sprawdzić, czy nazwa wymaga tablicy

"require": {
        "php": "^7.2",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "^6.2",
        "laravel/passport": "^8.3",
        "laravel/tinker": "^2.0"
    },

Załóżmy, że tutaj usunę pakiet „fideloper / proxy”.

Krok 2 : Otwórz wiersz polecenia w folderze katalogu głównego projektu Krok 3: Przede wszystkim wyczyść pamięć podręczną, wykonując następujące polecenia. Uruchamiaj polecenia jeden po drugim.wprowadź opis zdjęcia tutaj

php artisan cache:clear  
php artisan config:clear 

Krok 4: Teraz napisz następujące polecenie, aby usunąć pakiet. Tutaj musisz zmienić nazwę swojego pakietu zamiast mojego przykładowego pakietu.

composer remove fideloper/proxy

Teraz poczekaj kilka sekund, które paczka usuwa.


2
lub composer remove laravel/telescope --devjeśli jest to pakiet dev
vinsa

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.