Bower je přesně ten nástroj, který jako vývojář v NodeJS potřebujete, abyste své webové aplikaci vdechnuli život v internetovém prohlížeči na straně návštěvníka. Jde o utilitu, která pracuje nad centrálním repozitářem knihoven a jednoduchým způsobem vám dovoluje stahovat, updatovat javascriptové knihovny, které chcete vkládat do své www aplikace a následně je spouštět coby frontend v prohlížeči návštěvníka.

Jedná se o takovou obdobu npm pro frontend. Jeho autorem je, stejně jako u Bootstrapu, Twitter a vznikl v už roce 2012, takže žádná horká novinka, ale stabilní, otestovaný nástroj.
Jak funguje Bower
Po nainstalování na vaše pc máte k dispozici příkaz bower, který provádí všechny požadované akce. Jeho podobnost s npm je mimořádná. Má svůj bower.json konfigurační soubor, který popisuje váš projekt s pohledu frontendových knihoven.
Založit bower.json můžete příkazem
bower init
Budete vyzváni k zadání pár odpovědí, které povedou k založení konfiguráku:
{
"name": "ap",
"authors": [
"Josef Podany "
],
"description": "Pokusna aplikace",
"main": "app.js",
"moduleType": [
"node"
],
"keywords": [
"pokus"
],
"license": "MIT",
"homepage": "http://pepa.holla.cz",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"public/components",
"test",
"tests"
]
}
Důležitá poznámka
V adresáři vašeho projektu byste si měli vytvořit soubor .bowerrc, kde budete specifikovat minimálně adresář do kterého se budou stahovat, instalovat, vámi požadované knihovny:
{
"directory": "public/components"
}
Když takto nenaspecifikujete kam se mají knihovny stahovat, budou defaultně stahovaný do bower_components.
Detailní specifikaci .bowerrc souboru najdete zde.
Vložení Angularu do projektu
No a pak už jen stačí zadat příkaz
bower install --save angular
Do adresáře public/components se stáhne Angular, která pak můžete jednoduše použít v HTML souborech vaší aplikace:
–save se postará o modifikaci vašeho bower.json konfiguračního souboru:
"dependencies": {
"jquery": "~2.1.4",
"angular": "~1.4.7",
"bootstrap": "~3.3.5"
}
Já jsem cvičně doinstaloval i knihovny pro JQuety a Bootsrap.
Můžete pak kdykoliv smazat public/components a následně pak jednoduše nainstalovat vše znovu:
# instalace knihoven bower install # nebo jen aktualizace knihoven bower update
Rozdíl mezi npm a Bower
Bower na rozdíl od npm neřeší závislosti. Pokud v NodeJS potřebujete balíček mongodb a ten sám je závislý na nějakém jiném, dalším, balíčku, pak při instalaci balíčku mongodb se do adresáře s knihovnou mongodb stáhnou všechny požadované závislosti. A tohle funguje rekurzivně. To znamená, že pokud by knihovna mongodb byla závislá na knihovně super-file a ta závislá na knihovně fileio, nainstalují se do projektu všechny tyto knihovny a to včetně požadovaných verzí (závislost lze specifikovat i na požadovanou verzi knihovny).
A tohle v pojetí knihoven v Boweru nefunguje. Bower neřeší žádné závislosti. To znamené, že pokud chcete používat Bootstrap, který je závislý na JQuery, musíte specifikovat a nainstalovat oba zvlášť.
bower install --save bootstrap bower install --save query