Я установил пакет с помощью composer, и он установил многие другие пакеты как зависимости.
Теперь я удалил основной пакет с composer remove packageauthor/packagename
, но все старые зависимости не были удалены. Я ожидал, что composer очистит и сохранит только те пакеты, которые требуются в соответствии с composer.json
их зависимостями.
Как заставить composer очистить и удалить все неиспользуемые пакеты?
php
composer-php
Лоренц Мейер
источник
источник
composer remove …
это, но забыли,--update-with-dependencies
пока не наткнетесь на этот вопрос - последующие вызовыcomposer remove
не убьют все зависимости. Вам нужно будет вернуться, композиторinstall
, а затемcomposer 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
пальцы на этот ответ @LorenzMeyerНа самом деле это очень просто.
сделает все это за вас, но также обновит другие пакеты.
Чтобы удалить пакет без обновления других, укажите этот пакет в команде, например:
удалит
monolog/monolog
пакет.Тем не менее, могут остаться некоторые пустые папки или файлы, которые не могут быть удалены автоматически, и которые должны быть удалены вручную.
источник
--prune
Следующие команды будут делать то же самое отлично
источник
composer install
автоматически удалит неиспользованные пакетыПросто запустите
composer install
- это заставит вашvendor
каталог отражать зависимости вcomposer.lock
файле.Другими словами - он удалит любого поставщика, который отсутствует в
composer.lock
.Пожалуйста, обновите сам композитор перед запуском этого.
источник