Я использую скелетное приложение ZF2, и у него есть файл .gitignore, который предотвращает привязку внешних библиотек к git. Во время отладки мне нравится менять кое-что в исходном коде библиотек, чтобы узнать, как все работает. Если бы они контролировались версиями, их было бы очень легко вернуть в исходное состояние.
Как я могу заставить Composer переустановить конкретный фреймворк, чтобы я мог снова получить свежую неизмененную копию?
PS: Пожалуйста, не предлагайте удалять файл .gitignore, поскольку он существует по какой-то причине; он предотвращает попадание моих сторонних библиотек в репозиторий моего приложения. Я всегда могу установить их во время автоматического развертывания.
Ответы:
Вы можете использовать
--prefer-source
флаг для композитора для проверки внешних пакетов с информацией VCS (если таковая имеется). Вы можете просто вернуться в исходное состояние. Также, если выcomposer update
введете команду, composer обнаружит любые изменения, которые вы внесли локально, и спросит, хотите ли вы отменить их.Ваш файл .gitignore связан с вашим корневым проектом (скелет ZF2) и предотвращает фиксацию директории поставщика (где находятся ваши сторонние библиотеки) в вашу собственную VCS. Файл игнорирования не связан с репозиториями git ваших поставщиков.
источник
composer status -v
предоставил мне информацию с изменениями.Просто очистите папку поставщиков
rm -rf vendor/*
источник
composer clearcache
является хорошим дополнением в таких случаях.composer require vendor/package
сделает то, что хочет ОП, и за меньшее время. Я немного удивлен, что так много людей поддержали этот ответ.Я не хотел удалять все пакеты в
vendor/
каталоге, поэтому вот как я это сделал:rm -rf vendor/package-i-messed-up
composer install
еще разисточник
composer clearcache
сначала, если кеш по какой-то причине был поврежден.Что я сделал:
composer update --prefer-source vendor/library-name
Он снова загружает библиотеку вместе с репозиторием git
источник
composer clearcache
сначала, если кеш по какой-то причине был поврежден.Переустановите зависимости. Удалите папку vendor (вручную) или с помощью команды rm (если вы находитесь в папке проекта, обязательно) в Linux перед:
https://www.dev-metal.com/composer-problems-try-full-reset/
источник
Как указал пользователь @aaracrr в комментарии к другому ответу, вероятно, лучший ответ - повторно потребовать пакет с тем же ограничением версии.
т.е.
composer require vendor/package
или указав ограничение версии
composer require vendor/package:^1.0.0
источник
Почему-то никто не предложил очевидного и наиболее простого способа принудительной переустановки:
источник