Задать вопрос
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.

Зачем нужен bower?

Зачем нужен bower?
По сути же сильно урезанный npm? Или нет?

Тут пишут
https://xakep.ru/2014/05/30/bower-package-manager/

Главное отличие npm и Бовера — подход к установке зависимостей пакетов. Npm устанавливает зависимости для каждого пакета отдельно, в папку этого пакета, потом так же ставит зависимости зависимостей и так далее. В клиентском яваскрипте это недопустимо: нельзя подключить на страницу две версии jQuery или любой другой библиотеки. В Бовере каждый пакет устанавливается один раз, и в случае конфликта зависимостей Бовер просто не станет устанавливать пакет, несовместимый с уже установленными.


Но в том же npm при сборке через browserify пакеты одинаковых версий будут включены в результирующий файл один раз. Либо можно сразу прописать повторяющиеся пакеты как зависимости родительского/основного пакета, тогда они будут установлены единожды.

Короче в чем смысл прочих пакетных менеджеров кроме npm?
  • Вопрос задан
  • 2716 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Короче в чем смысл прочих пакетных менеджеров кроме npm?

npm - менеджер пакетов для node.js тогда как bower- исключительно для браузера. Есть люди (например я) которые категорически ЗА такое разделение. Еще есть jspm и я надеюсь что когда-нибудь я на него перейду. Опять же тот подход который использует npm для фронтэнда конечно подходит, но есть оговорки.

И все было бы круто если бы не одно но: bower убог, как бы я его не любил. Уже пол года как не могут сделать lock файлы зависимостей... печально.... Ну а npm развивается. Гуглить npm dedup, так что оверхэд от использования каждым модулей своих модулей снижается до нуля.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Прелесть bower в возможности ставить зависимости куда тебе надо, а не в node_modules. Это незаменимо на легаси-проектах, например.
С другой стороны, если ты и на сервере и на клиенте юзаешь, например, momentjs, или у тебя изоморфный рендеринг на react — то не будешь же ставить одно и то же два раза двумя разными менеджерами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы