Почему я должен использовать Bower? [закрыто]

32

Я могу полностью оценить преимущества менеджера пакетов, такого как Python pip, Node's npmили Ruby Gems, поскольку они делают гораздо больше, чем просто добавляют файлы в путь к вашим приложениям.

Может быть, я упускаю суть, или я тупой, но вот негативы, которые я вижу:

  • Отдельный шаг при создании проекта
  • Отдельная зависимость для установки через другой менеджер пакетов (yo dawg)
  • Больше беспорядка в корнях проектов с bower.jsonи / или.bowerrc
  • Опора на актуальный, правильный и доступный реестр
  • Некоторые импорта / ссылки на такие вещи, как изображения не будут работать
  • Огромное совпадение с npm, и часто неясно, какой ресурс использовать, когда

В позитивы я могу видеть, таковы:

  • Мне не нужно загружать зависимости вручную
  • При желании установить пакеты как часть скаффолдинга на основе пользовательских запросов или тому подобного

Мне бы очень хотелось узнать о любых преимуществах, о которых я не знаю, и должен сказать, что я не пытаюсь быть провокационным, я искренне хочу это знать.

Wil
источник
1
Связанный: programmers.stackexchange.com/q/174959/34183
Майк Партридж
В конечном счете, все менеджеры пакетов, о которых вы упоминаете, связаны с загрузкой зависимостей, и они имеют некоторые из тех же «негативов», которые вы перечислили для Bower. Аналогичным образом, Bower разделяет некоторые преимущества npm, pip и rubygems: например, Bower упрощает обновление ваших зависимостей до последней версии (это большая версия) и значительно уменьшает беспорядок в вашем git-репо, поскольку вы не нужно регистрировать код зависимости.
sffc
6
Жаль, что этот вопрос был закрыт за то, что он «в первую очередь основан на мнении». ОП просит экспертного заключения. «Как это помогает мне в процессе разработки?»
Дейв Кантер,
Похоже, что тенденция заключается в том, что вы не должны использовать бауэр, у него нет инструментов или преимуществ по сравнению с использованием npm в сочетании с Browserify. Кажется, что индустрия говорит, и число модулей для беседки уменьшается, а npm и Browserify становятся стандартом: quora.com/Why-use-Bower-when-there-is-npm
Брайан Огден

Ответы:

12

От README :

Бауэр - менеджер пакетов для Интернета. Он предлагает общее решение для управления внешними пакетами, не подвергая его простому решению, в то же время раскрывая модель зависимостей пакетов через API, который может использоваться более упорядоченным стеком сборки. Нет общесистемных зависимостей, нет общих зависимостей между разными приложениями, а дерево зависимостей плоское.

Бауэр работает над Git и не зависит от пакета. Упакованный компонент может состоять из любого типа ресурса и использовать любой тип транспорта (например, AMD, CommonJS и т. Д.).

У Бауэра много преимуществ от других менеджеров зависимости. Я уверен, что есть и другие, но преимущества, которые я заметил, включают:

  • Упростить то, что можно назвать декларативным управлением зависимостями; т.е. вы объявляете свои зависимости в bower.json, чтобы другие вещи могли легко их определить
  • Нет необходимости фиксировать зависимости для контроля версий
  • Семантическое управление версиями используется для определения диапазона допустимых версий для зависимости, что упрощает обновление до новых версий в пределах указанного диапазона.
  • Нет необходимости находить различные сборки (отладочные, минифицированные и т. Д.)
  • Простые в использовании различные сборки зависимости для разработки и разработки
  • Вы можете распространять файл bower.json, и каждый сможет освоиться с простой установкой bower.
Майк Партридж
источник
2
Определенно хотелось бы, чтобы я написал вопрос менее провокационным образом. На самом деле, я думаю, что главное преимущество, которое я упустил, - это использование API как части процесса сборки / создания леса. Я хотел бы видеть использование этого в дикой природе где-нибудь.
Уил
Я узнал о Бауэре, когда загрузил веб-приложение Angular, используя генератор Angular для Yeoman. Попытка этого может дать вам представление о том, как это можно использовать.
Майк Партридж
До этого я использовал Yeoman и Grunt Init, и, возможно, просто мои потребности всегда подразумевали, что компоненты переднего плана никогда не будут отклоняться - они всегда будут Angular, jQuery, Mocha и т. Д., Но я вижу, что если пользователь хочет поменяйте местами тестовый фреймворк из списка выбора подсказок при загрузке, это было бы полезно. Я думаю, что главное преимущество, которое имеет смысл, - это параметры начальной загрузки и модификаторы. Как вы думаете, это справедливо?
Уил
2
Также портативность. Вы можете распространять файл bower.json, и каждый может быстро освоиться с простой установкой bower.
Дейв Кантер,
1
s/bower/npm/iи этот ответ все еще на 100% верен.
Qix