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