IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Bower és un sistema de gestió de paquets (package management system) per a programació de la banda de client (client-side programming) en pàgines web (World Wide Web). Depèn de Node.js i npm i treballat amb repositoris git com per exemple GitHub.

Les pàgines web es creen utilitzant multitud de components com frameworks, libraries, assets, utilities i/o rainbows. Bower és una eina pensada per facilitar la gestió de totes aquestes eines.

Bower facilita la instal·lació de paquets i manté un control d'aquests fitxers en un fitxer de manifest en format JSON (bower.json).

Bower està optimitzat per al front-end, utilitza un flat dependency tree requerint només una versió de cada paquet reduint la càrrega de la pàgina al mínim

Instal·lació

La forma més senzilla és utilitzar npm:

$ sudo npm install -g bower

Amb l'opció -g la instal·lació és global i per tant en molts sistemes cal ser superusuari ja que instal·larà per defecte bower a:

/usr/local/bin/bower -> /usr/local/lib/node_modules/bower/bin/bowerbower

Cal tenir el PATH configurat per utilitzar /usr/local/bin/. Comprovreu amb:

$ echo $PATH

Sinó és així podeu configurar ~/.bashrc i afegir a la última línia:

export PATH=${PATH}:/usr/local/bin/

Instal·lació de paquets

Exemple: Instal·lació de jquery:

$ bower install jquery 
bower jquery#*              not-cached git://github.com/jquery/jquery.git#*
bower jquery#*                 resolve git://github.com/jquery/jquery.git#* 
bower jquery#*                download https://github.com/jquery/jquery/archive/2.1.3.tar.gz
bower jquery#*                 extract archive.tar.gz
bower jquery#*                resolved git://github.com/jquery/jquery.git#2.1.3
bower jquery#~2.1.3            install jquery#2.1.3

jquery#2.1.3 bower_components/jquery

Per defecte el que s'instal·la amb Bower s'instal·la a bower_components:

$ ls -l bower_components/
total 4 
drwxrwxr-x 4 sergi sergi 4096 mar 11 12:46 jquery

Al fitxer de manifest (bower.json) del paquet instal·lat:

$ cat bower_components/jquery/bower.json 
{
 "name": "jquery",
 "version": "2.1.3",
 "main": "dist/jquery.js",
 "license": "MIT",
 "ignore": [
   "**/.*",
   "build",
   "speed",
   "test",
   "*.md",
   "AUTHORS.txt",
   "Gruntfile.js",
   "package.json"
 ],
 "devDependencies": {
   "sizzle": "2.1.1-jquery.2.1.2",
   "requirejs": "2.1.10",
   "qunit": "1.14.0",
   "sinon": "1.8.1"
 },
 "keywords": [
   "jquery",
   "javascript",
   "library"
 ]
} 

Podeu veure informació sobre el paquet instal·lat.

El paquet que acabem d'instal·lar és el que s'anomena un paquet registrat, és a dir que està al repositori de bower que podeu consultar a:

http://bower.io/search/

Recursos:

Fitxers de configuració

bower.json

Fitxer principal de configuració té un format molt similar a composer.json:

Laravel

Bàsicament amb Laravel ens interessarà canviar el lloc per defecte on Bower instal·la les dependències o components bower, en compte de:

./bower_components

o voldrem guardar a.

./vendor/bower_components

Això es pot fer canviant la configuració per defecte de Bower només per a la carpeta a la que estem (és a dir només per al nostre projecte Laravel) creant un fitxer anomenat .bowerrc

$ cat .bowerrc
{
  "directory" : "vendor/bower_components"
}

I segurament també posar un Script Hook per a Gulp

$ cat .bowerrc
{
  "directory" : "vendor/bower_components",
  "scripts": {
    "post-install" : gulp publish
  }
}

Vegeu també

Enllaços externs