Как удалить неиспользуемые зависимости от композитора?

Я установил пакет с композитором, и он установил многие другие пакеты в качестве зависимостей.

Теперь я удалил основной пакет с помощью composer remove packageauthor/packagename, но все старые зависимости не были удалены. Я ожидал, что композитор очистится и сохранит только пакеты, которые требуются в соответствии с composer.json и их зависимостями.

Как я могу заставить компоновщика очистить и удалить все неиспользуемые пакеты?

Ответ 1

Правильный способ сделать это:

composer remove jenssegers/mongodb --update-with-dependencies

Я должен признать, что флаг здесь не совсем очевидно относительно того, что он будет делать.

Обновить

composer remove jenssegers/mongodb

Начиная с версии 1.0.0-бета2 --update-with-dependencies является значением по умолчанию и больше не требуется.

Ответ 2

На самом деле это очень просто.

composer update

сделает все это для вас, но он также обновит другие пакеты.

Чтобы удалить пакет без обновления других, укажите этот пакет в команде, например:

composer update monolog/monolog

удалит пакет monolog/monolog.

Тем не менее, могут оставаться некоторые пустые папки или файлы, которые нельзя удалить автоматически, и их необходимо удалить вручную.

Ответ 3

Следующие команды будут делать то же самое отлично

rm -rf vendor

composer install 

Ответ 4

Просто запустите composer install - это приведет к тому, что каталог vendor отобразит зависимости в файле composer.lock.

Другими словами - он удалит любого поставщика, которого нет в composer.lock.

Прежде чем запускать это, обновите композитор.