Как удалить неиспользуемые зависимости от композитора?
Я установил пакет с композитором, и он установил многие другие пакеты в качестве зависимостей.
Теперь я удалил основной пакет с помощью 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
.
Прежде чем запускать это, обновите композитор.