Как заставить composer переустановить библиотеку?


Я использую приложение ZF2 skeleton, и в нем есть .gitignore, который предотвращает передачу внешних библиотек в git. Во время отладки мне нравится ходить и менять кое-что здесь и там в источнике библиотек, чтобы узнать, как все работает. Если бы они управлялись версиями, было бы очень легко вернуть их в исходное состояние.

Как я могу заставить Composer переустановить определенную платформу, чтобы я мог снова получить свежую - неизмененную - копию?

PS: Пожалуйста, не надо предложите удалить файл .gitignore, так как он существует не просто так; это предотвращает попадание моих сторонних библиотек в репозиторий моего приложения. Я всегда могу установить их во время автоматического развертывания.

Author: Julian, 2013-10-27

4 answers

Вы можете использовать флаг --prefer-source для composer для проверки внешних пакетов с информацией VCS (если таковая имеется). Вы можете просто вернуться в исходное состояние. Также, если вы выполните команду composer update, composer обнаружит любые изменения, внесенные вами локально, и спросит, хотите ли вы их отменить.

Ваш файл .gitignore связан с вашим корневым проектом (скелет ZF2), и он не позволяет директории поставщика (где находятся ваши сторонние библиотеки) привязываться к вашим собственным VCS. Файл игнорирования является не имеет отношения к репозиториям git ваших поставщиков.

 39
Author: Bram Gerritsen, 2013-10-26 20:24:36

Просто очистите папку поставщиков

rm -rf vendor/*
 123
Author: Zoran, 2016-03-17 17:14:20

Что я сделал:

  1. Удалил папку этой конкретной библиотеки
  2. composer update --prefer-source vendor/library-name

Он снова извлекает библиотеку вместе с репозиторием git

 10
Author: Attila Fulop, 2016-12-13 17:41:28

Я не хотел удалять все пакеты в каталоге vendor/, поэтому вот как я это сделал:

  1. rm -rf vendor/package-i-messed-up
  2. composer install снова
 6
Author: Yerke, 2017-12-16 00:23:32