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