Zainstalowałem pakiet z kompozytorem i zainstalowałem wiele innych pakietów jako zależności.
Teraz odinstalowałem pakiet główny composer remove packageauthor/packagename
, ale wszystkie stare zależności nie zostały usunięte. Oczekiwałem, że kompozytor wyczyści i zatrzyma tylko pakiety, które są wymagane zgodnie z composer.json
ich zależnościami.
Jak zmusić kompozytora do wyczyszczenia i usunięcia wszystkich nieużywanych pakietów?
php
composer-php
Lorenz Meyer
źródło
źródło
composer remove …
, ale zapomniałeś,--update-with-dependencies
dopóki nie natkniesz się na to pytanie - kolejne połączeniacomposer remove
nie zabiją wszystkich zależności. Musisz się wycofać, kompozytorzeinstall
, a potemcomposer remove --update-with-dependencies
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
composer update
Kciuk w górę do tej odpowiedzi do @LorenzMeyerW rzeczywistości jest to bardzo łatwe.
zrobi to wszystko za Ciebie, ale zaktualizuje również inne pakiety.
Aby usunąć pakiet bez aktualizacji pozostałych, określ ten pakiet w poleceniu, na przykład:
usunie
monolog/monolog
paczkę.Niemniej jednak mogą pozostać puste foldery lub pliki, których nie można automatycznie usunąć i które trzeba usunąć ręcznie.
źródło
--prune
następujące polecenia zrobią to samo doskonale
źródło
composer install
automatycznie usunie nieużywane pakietyPo prostu uruchom
composer install
- sprawi, żevendor
katalog będzie odzwierciedlał zależności wcomposer.lock
pliku.Innymi słowy - usunie każdego brakującego dostawcę
composer.lock
.Zaktualizuj samego kompozytora przed uruchomieniem tego.
źródło