Должен ли я добавить каталог поставщиков Laravel в.gitignore или нет?
У меня есть каталог поставщиков в файле .gitignore
.
Каждый раз, когда я запускаю composer update
, git не может отслеживать обновления и изменения каталога vendor
, и поэтому я не могу отменить эти изменения!!
Мой вопрос: Возможно ли, что приложение аварийно завершит работу ИЛИ столкнется с ошибками после composer update
, поэтому необходимо git reset
?
Если это возможно, не лучше ли удалить каталог поставщиков из .gitignore
?
может быть, есть другие решения этой проблемы? (если это вообще проблема !!)
2 answers
Композитор предоставляет файл composer.lock
для этой цели.
Установка нового пакета, выполнение composer update
и т.д., Которые вызывают изменения пакета, запишут точные версии установленных пакетов в composer.lock
. Вы должны включить этот файл в файлы с версиями вашего репозитория.
Вы можете запустить composer install
, чтобы автоматически установить точный список версий пакетов из composer.lock
. Поскольку он будет версионным, вы всегда можете откатить его до рабочей версии и запустить composer install
снова.
Примечание сбоку: composer dump-autoload
не следует вносить никаких разрушительных изменений в vendor
.
vendor
каталог по умолчанию находится в .gitignore
. И это хорошая идея, потому что composer
установит все пакеты, которые он найдет в composer.json
для вас на любой машине в любое время. Если у вас возникли проблемы с новой версией какого-либо пакета, просто измените его обратно в composer.json
и снова запустите composer update
.
Конечно, вы можете удалить каталог vendor
из .gitignore
, но это замедлит фиксацию и займет гораздо больше места на диске и на GitHub/Bitbucket и т. Д.