Стоит ли игнорировать Bower_components?

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


person Pierre de LESPINAY    schedule 11.03.2014    source источник
comment
Я только что заметил Официальная поваренная книга Symfony, которая фактически отвечает на этот точный вопрос, цитируя В настоящее время вам, вероятно, следует зафиксировать ресурсы, загруженные Bower, вместо добавления каталога в ваш .gitignore файл   -  person Pierre de LESPINAY    schedule 12.06.2016


Ответы (6)


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

Примечание. Если вы не создаете пакет, предназначенный для использования другими (например, вы создаете веб-приложение), вам всегда следует проверить установленные пакеты в системе контроля версий.

Обязательно ознакомьтесь со ссылкой в ​​цитате, в ней обсуждаются некоторые плюсы и минусы. Главный плюс, который он упоминает, заключается в том, что их проверка гарантирует, что ваши зависимости всегда доступны, пока доступен ваш репозиторий. Что бы ни случилось с Bower, GitHub или чем-то еще, что было бы необходимо в противном случае.

person TimWolla    schedule 11.03.2014
comment
Спасибо за эту интересную статью. Так что на данный момент у нас все еще нет файла блокировки, эквивалентного замораживанию версий. - person Pierre de LESPINAY; 11.03.2014
comment
@PierredeLESPINAY Только для верхнего уровня. Чего не хватает, так это эквивалента функции сжатия npm. - person passy; 12.03.2014
comment
Они также говорят об этом в своем блоге. - person Krishnaraj; 08.03.2016
comment
Причина их проверки заключается в том, что в один прекрасный день библиотека может исчезнуть из Интернета или может произойти некоторое время простоя, что, в свою очередь, может привести к сбоям сборки. Как пользователь Maven/Gradle я никогда не думаю о проверке зависимостей. - person Krishnaraj; 08.03.2016
comment
Совет на официальной странице Bower проверять установленные пакеты в системе контроля версий был удален в 2014 году: ">github.com/bower/bower.github.io/commit/ - person user; 30.08.2016
comment
Я немного разорван этим, так как мне нравится более чистое репо, в котором не фиксируется весь каталог, но я также не хочу, чтобы меня поймали. В мире python гораздо более очевиден вариант, что вы не будете фиксировать зависимости из-за разных процессов сборки для разных операционных систем. Если мир Python счастлив так работать, почему мир Bower/npm должен быть другим? - person Chris Barry; 10.01.2017
comment
Когда Эдди Османи написала сообщение в блоге 29 июля 2013 года, возможность термоупаковки была недостатком для игнорирования /bower_components и проверки только в bower.json. Однако 10 июня 2016 г. Шон Лонас разработал npmjs.com/package/bower-locker. и это больше не недостаток, хотя проблема (github.com/bower/bower/issues/505) в репозитории Bower до сих пор не решена по состоянию на 21 марта 2017 г. - person Joel Handwell; 22.03.2017
comment
Цитируемая ссылка указывает на недостоверный источник. Мой личный совет - не проверяйте общедоступные сторонние библиотеки. - person Miro J.; 17.08.2017

В файле .gitignore во вновь созданном проекте Yeoman AngularJS есть Bower_components (и node_modules), которые следует игнорировать (если вы не знаю Yeoman, это очень авторитетный инструмент для создания веб-шаблонов для современных веб-приложений, так что мне этого достаточно!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components
person user12121234    schedule 14.01.2015

Есть время и место для обоих подходов. Для Йомана уместно полагаться на bower.json, потому что это инструмент в цепочке инструментов, который должен оставаться живым и дышащим вместе с экосистемой Bower. Для развертываемого веб-приложения обычно рекомендуется фиксировать зависимости и поддерживать больший контроль.

Вот хорошая статья, мне нравится, что это обсуждается.

person JoshuaDavid    schedule 08.11.2015

Если вы используете Grunt и Node с Bower, имеет смысл поместить bower_components в ваш .gitignore, потому что при запуске grunt serve или grunt build он позаботится о зависимостях за вас, я уверен, поэтому в Yeoman его добавляют в .gitignore

person Yves    schedule 09.02.2015

Генератор Yeoman предварительно заполнил файл .gitignore Bower_components, но также предварительно заполнил с другими каталогами, которые, я думаю, понадобятся для окончательного приложения (например, www), поэтому я провел небольшое исследование.

Я обнаружил, что www/index.html — это уменьшенная версия app/index.html. Каталог приложения и его содержимое (включая Bower_components) содержит исходные файлы, необходимые для выходного каталога (www). Вы фиксируете исходные каталоги в системе управления версиями (например, git), но не сгенерированные файлы (например, www). Менеджеры пакетов, такие как bower и npm, предназначены для использования на этапе сборки/генерации, и их артефакты не предназначены для проверки в системе контроля версий.

В конечном счете, исходный код, который вы регистрируете в git, — это минимальная конфигурация, необходимая для сборки остальной части проекта в целях разработки или развертывания.

person Erich Cervantez    schedule 03.07.2015

Если вы создаете файл блокировки с помощью 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.

person Joel Handwell    schedule 21.03.2017