Bower, balíčkovací systém pro NodeJS

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.

bower
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

Budete vyzváni k zadání pár odpovědí, které povedou k založení konfiguráku:

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:

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

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:

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:

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ášť.