Должны ли gower_components быть gitignored?

Будет ли хорошей практикой хранить только файл bower.json и gitignore всю директорию bower_components?

Ответ 1

официальная страница Bower:

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