Npm или bower для фронта?
Главное отличие npm и Бовера — подход к установке зависимостей пакетов. 
Мне казалось, главное отличие в использовании установленных пакетов, а не в их установке.
Bower предполагает, что вы либо руками будете подключать каждый нужный файл тегами script/link, либо воспользуетесь системой сборки, склеивая библиотеки. NPM предполагает, что вы по-любому используете систему сборки и подключаете зависимости как модули с помощью import или require.
Поправьте, если ошибаюсь.
В тренде сейчас yarn - менеджер, который тянет пакеты из npm.