- Рекомендации по настройке Composer при использовании сторонних пакетов
- Проблемы при указании зависимостей сторонних пакетов
- Как поступить при необходимости указания зависимостей сторонних пакетов
Рекомендации по настройке Composer при использовании сторонних пакетов
Общая рекомендация - нет. Каталог поставщика (или любое другое место, где установлены ваши зависимости) следует добавить в .gitignore
/svn:ignore
/etc.
Рекомендуется, чтобы все разработчики использовали Composer для установки зависимостей. Аналогичным образом, сервер сборки, CI, инструменты развертывания и т.д. должны быть адаптированы для запуска Composer в рамках начальной загрузки проекта.
Проблемы при указании зависимостей сторонних пакетов
Хотя может возникнуть соблазн закоммитить всё в какой-либо среде, и это приводит к ряду проблем:
- Большой размер репозитория VCS и различия при обновлении кода.
- Дублирование истории всех ваших зависимостей в вашей собственной VCS.
- При добавлении зависимостей, установленных с помощью git, в репозиторий git они будут отображаться как подмодули. Это проблематично, поскольку они не являются настоящими подмодулями, и вы столкнетесь с проблемами.
Как поступить ри необходимости указания зависимостей сторонних пакетов
Если вы действительно чувствуете, что должны это сделать, у вас есть несколько вариантов:
- Ограничьтесь установкой помеченных релизов (без dev-версий), чтобы получать только архивированные установки и избежать проблем с "подмодулями" git.
- Используйте
--preferred-dist
или установите для параметраpreferred-install
значениеdist
в вашем конфиге. - Удалите каталог
.git
для каждой зависимости после установки, тогда вы сможете добавить их в свой git-репозиторий. Вы можете сделать это с помощьюrm -rf vendor/**/.git
в ZSH илиfind vendor/ -type d -name ".git" -exec rm -rf {} \;
в Bash. Но это означает, что вам придется удалить эти зависимости с диска перед запускомcomposer update
. - Добавьте правило
.gitignore
(/vendor/**/.git
), чтобы игнорировать все папки vendor.git
. Этот подход не требует удаления зависимостей с диска перед запускомcomposer update
.
Перевод с английского официальной документации Composer:
https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md