Будет ли хорошей практикой хранить только файл bower.json
и gitignore всю директорию bower_components
?
Должны ли gower_components быть gitignored?
Ответ 1
NB Если вы не создаете пакет, предназначенный для потребления другими (например, вы создаете веб-приложение), вы всегда должны проверить установленные пакеты в исходное управление.
Не забудьте проверить ссылку в цитате, она обсуждает некоторые про и минусы. Основной вопрос, который он упоминает, заключается в том, что их проверка гарантирует, что ваши зависимости всегда доступны, если ваш репозиторий доступен. Независимо от того, что произойдет с Bower, GitHub или каким-либо другим, в противном случае это будет необходимо.
Ответ 2
Файл .gitignore в недавно созданном Yeoman проекте AngularJS содержит ссылки на bower_components (и node_modules) для игнорирования (если вы не знаете Yeoman, это очень авторитетный инструмент для создания веб-сайтов для современных веб-приложений, так что это достаточно хорошо для меня!):
.gitignore
node_modules
dist
.tmp
.sass-cache
bower_components
Ответ 3
Там есть время и место для обоих подходов. Для Йомана уместно полагаться на bower.json, потому что это инструмент в инструментальной цепочке и нуждается в том, чтобы оставаться живым и дышать с помощью экосистемы бесед. Для развертываемого веб-приложения обычно рекомендуется выполнять привязки и поддерживать больше контроля.
Здесь хорошая статья Мне нравится, что это обсуждается.
Ответ 4
Если вы используете Grunt и Node с Bower, имеет смысл вставить bower_components в .gitignore, потому что, когда вы запускаете службу grunt или сборку grunt, она заботится о зависимостях для вас, Я уверен, что в Yoman они добавляют его к .gitignore
Ответ 5
Генератор Yeoman предварительно заполнил файл .gitignore с помощью bower_components, заполненный другими каталогами, я бы подумал, что это необходимо для окончательного приложения (например, www), поэтому я сделал некоторые исследования.
Я обнаружил, что www/index.html является сокращенной версией приложения /index.html. Каталог приложения и его содержимое (включая bower_components) содержат исходные файлы, необходимые для выходного каталога (www). Вы передаете исходные каталоги в источник-контроль (т.е. git), но не сгенерированные файлы (т.е. Www). Пакетные менеджеры, такие как bower и npm, предназначены для использования во время фазы сборки/генерации, и их артефакты не предназначены для контроля источника.
В конечном счете источник, который вы проверяете на git, представляет собой минимальную конфигурацию, необходимую для создания остальной части проекта для целей разработки или развертывания.
Ответ 6
Хорошо игнорировать /bower_components
dir и проверять только файлы bower.json
и bower-locker.bower.json
, если вы создаете файл блокировки с помощью bower-locker, написанный Shawn Lonas.
Прежде чем создать шкафчик-лайнер, был недостаток, вызванный проблемой bower не имеющей возможности термоусадки, но она может быть смягчена приведенным выше библиотека.
Выполните следующие команды для его достижения:
npm install bower-locker -g
или
yarn global add bower-locker
затем создайте файл блокировки на основе существующего файла bower.json
, выполнив:
bower-locker lock
Оригинальный файл bower.json
будет переименован в bower-locker.bower.json