Чи слід ухвалювати bower_components?


157

Чи було б гарною практикою зберігати лише bower.jsonфайл і gitignore весь bower_componentsкаталог?


Щойно я помітив офіційну кулінарну книжку Symfony, яка насправді відповідає на це точне запитання, цитуючи "Наразі, ви, мабуть, повинні скористатися активами, завантаженими Bower, замість того, щоб додати каталог у свій .gitignoreфайл"
Pierre de LESPINAY

Відповіді:


149

На офіційній сторінці "Бауер" зазначено:

Примітка. Якщо ви не розробляєте пакет, призначений для споживання іншими (наприклад, ви створюєте веб-додаток), ви завжди повинні перевіряти встановлені пакети на контроль джерел .

Не забудьте перевірити посилання в цитаті, в ньому обговорюються деякі плюси і мінуси. Головне, про що йдеться, полягає в тому, що перевірка їх гарантує, що ваші залежності завжди доступні, доки ваше сховище буде доступне. Незалежно від того, що станеться з Bower, GitHub або будь-яким іншим, потрібно було б інакше.


1
Дякую за цю цікаву статтю. Тому поки що у нас немає жодного "блокувального файла", еквівалентного для заморожування версій.
П’єр де ЛЕСПІНАЙ

1
@PierredeLESPINAY Тільки для вищого рівня. Чого не вистачає, це еквівалент функції скорочення термоусадок npm.
пасистий

3
Вони також говорять про це у своєму дописі на блозі "Зрештою, вибір того, чи потрібно робити реєстрацію у вашому каталозі / bower_components, залежить тільки від вас ...".
Крішнарадж

3
Причина перевірки їх полягає в тому, що якийсь день бібліотека може зникнути з Інтернету або їх час може бути деяким простоєм, який, в свою чергу, може спричинити збої в побудові. Як користувач Maven / Gradle я ніколи не замислююся про перевірку залежностей.
Крішнарадж

7
Поради на офіційній сторінці Bower щодо перевірки встановлених пакетів для контролю джерела були видалені у 2014 році: github.com/bower/bower.github.io/commit/…
користувач

52

Файл .gitignore в нещодавно створеному проекті Yeoman AngularJS містить список bower_components (та node_modules), які не враховуються (якщо ви не знаєте Yeoman, це дуже надійний інструмент веб-лісів для сучасних веб-сайтів, тому для мене це досить добре!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

9

Для обох підходів є час і місце. Для Yeoman доречно покластися на bower.json, тому що це інструмент в ланцюжку інструментів і йому потрібно залишатися жити і дихати за допомогою екосистеми цистерни. Для веб-додатків, що розгортаються, зазвичай є хорошою практикою здійснювати залежності та підтримувати більше контролю.

Ось хороша стаття, мені подобається, що це обговорює.


6

Якщо ви використовуєте Grunt і Node з Bower, має сенс помістити bower_components у свій .gitignore, оскільки, коли ви запускаєте grunt serve або grunt build, він піклується про залежності для вас, я впевнений, що саме тому в Yeoman вони додають його до .gitignore


5

Yeoman генератор попередньо наповнив .gitignore файл з bower_components, але також попередньо заповнений з іншими каталогами я думаю , був би необхідний для остаточного додатки (наприклад , WWW) , так що я зробив деякі дослідження.

Я виявив, що www / index.html - це мінімізована версія програми / index.html. Каталог програми та його вміст (включаючи bower_components) містять вихідні файли, необхідні для вихідного каталогу (www). Ви вводите каталоги джерел в управління джерелами (тобто git), але не створювані файли (тобто www). Менеджери пакетів, такі як bower і npm, повинні використовуватися під час фази збирання / генерації, і їх артефакти не повинні перевірятися на контроль джерел.

Зрештою, джерело, яке ви перевіряєте на git, - це мінімальна мінімальна конфігурація, необхідна для складання решти проекту для цілей розробки або розгортання.


0

Добре ігнорувати /bower_componentsdir та зареєструватися лише bower.jsonта bower-locker.bower.jsonподати файл, якщо ви створюєте файл блокування за допомогою шафи-шафки, написаної Шон Лонасом .

Перед тим, як створити шафку-шафку, був недолік, спричинений тим, що балончик не має можливості усадки, але це може бути усунено вищевказаною бібліотекою.

Для його виконання виконайте наступні команди:

npm install bower-locker -g

або

yarn global add bower-locker

потім генеруйте файл блокування на основі наявного bower.jsonфайлу шляхом запуску:

bower-locker lock

Початковий bower.jsonфайл буде перейменований наbower-locker.bower.json

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.