Будет ли хорошей практикой хранить только файл bower.json и игнорировать весь каталог bower_components?
Стоит ли игнорировать Bower_components?
Ответы (6)
официальная страница Bower заявил:
Примечание. Если вы не создаете пакет, предназначенный для использования другими (например, вы создаете веб-приложение), вам всегда следует проверить установленные пакеты в системе контроля версий.
Обязательно ознакомьтесь со ссылкой в цитате, в ней обсуждаются некоторые плюсы и минусы. Главный плюс, который он упоминает, заключается в том, что их проверка гарантирует, что ваши зависимости всегда доступны, пока доступен ваш репозиторий. Что бы ни случилось с Bower, GitHub или чем-то еще, что было бы необходимо в противном случае.
В файле .gitignore во вновь созданном проекте Yeoman AngularJS есть Bower_components (и node_modules), которые следует игнорировать (если вы не знаю Yeoman, это очень авторитетный инструмент для создания веб-шаблонов для современных веб-приложений, так что мне этого достаточно!):
.gitignore
node_modules
dist
.tmp
.sass-cache
bower_components
Есть время и место для обоих подходов. Для Йомана уместно полагаться на bower.json, потому что это инструмент в цепочке инструментов, который должен оставаться живым и дышащим вместе с экосистемой Bower. Для развертываемого веб-приложения обычно рекомендуется фиксировать зависимости и поддерживать больший контроль.
Вот хорошая статья, мне нравится, что это обсуждается.
Если вы используете Grunt и Node с Bower, имеет смысл поместить bower_components в ваш .gitignore, потому что при запуске grunt serve или grunt build он позаботится о зависимостях за вас, я уверен, поэтому в Yeoman его добавляют в .gitignore
Генератор Yeoman предварительно заполнил файл .gitignore Bower_components, но также предварительно заполнил с другими каталогами, которые, я думаю, понадобятся для окончательного приложения (например, www), поэтому я провел небольшое исследование.
Я обнаружил, что www/index.html — это уменьшенная версия app/index.html. Каталог приложения и его содержимое (включая Bower_components) содержит исходные файлы, необходимые для выходного каталога (www). Вы фиксируете исходные каталоги в системе управления версиями (например, git), но не сгенерированные файлы (например, www). Менеджеры пакетов, такие как bower и npm, предназначены для использования на этапе сборки/генерации, и их артефакты не предназначены для проверки в системе контроля версий.
В конечном счете, исходный код, который вы регистрируете в git, — это минимальная конфигурация, необходимая для сборки остальной части проекта в целях разработки или развертывания.
Если вы создаете файл блокировки с помощью bower, рекомендуется игнорировать каталог /bower_components и возвращать только файлы bower.json и bower-locker.bower.json. -locker, автор Шон Лонас.
До создания Bower-Locker существовала проблема, связанная с тем, что Bower не имел возможности сжатия но это может быть смягчено вышеупомянутой библиотекой.
Для этого выполните следующие команды:
npm install bower-locker -g
or
yarn global add bower-locker
затем создайте файл блокировки на основе существующего файла bower.json, выполнив:
bower-locker lock
Исходный файл bower.json будет переименован в bower-locker.bower.json.
.gitignoreфайл - person Pierre de LESPINAY   schedule 12.06.2016