Cualquier proyecto web con independencia de su tamaño necesita gestionar una gran cantidad de recursos diferentes: librerías Javascript, frameworks CSS o componentes HTML. Cada uno de estos componentes puede tener a su vez otras dependencias que debemos gestionar. Con forme nuestro proyecto se desarrolla es normal que algunos de estos componentes queden desactualizados, lo que puede darnos problemas de seguridad. Para poder solucionar esto surgen herramientas como Bower.
Instalación
Bower requiere de node, npm y git. Por suerte su instalación es bastante sencilla en linux:
Instalamos git
sudo apt-get install git
Instalamos node
sudo apt-get install nodejs-legacy
Instalamos npm
sudo apt-get install npm
Y finalmente instalamos bower
sudo npm install bower -g
Primeros pasos
Al igual que composer usa el fichero composer.json para gestionar los paquetes del proyecto, bower usar un fichero llamado bower.json. Podemos generar un fichero básico con:
bower init
Tras unas cuantas preguntas tendremos un fichero bower.json limpio.
Instalar un paquete
Podemos instalar cualquier paquete con el comando «bower install». Si añadimos la opción –save se guardará la dependencia en bower.json.
bower install PACKAGE --save
Configurar el directorio de instalación de paquetes
En el caso de Symfony, necesitamos que los paquetes se instalen dentro de la carpeta «web/» ya que de lo contrario no serían públicamente accesibles. Podemos configurar el directorio de instalación de bower creando un fichero «.bowerrc» como el siguiente:
{
"directory": "web/assets/vendor/"
}
En este caso todo se instalará dentro del directorio «web/assets/vendor/».
Eliminar un paquete
Eliminar un paquete instalado es tan fácil como instalarlo.
bower uninstall PACKAGE --save
De nuevo usamos «–save» para que guarde dicho cambio en el fichero bower.json.
Buscar paquetes
Finalmente podemos buscar paquetes para instalar en bower.io.
Bower puede instalar paquetes desde muchas fuentes distintas y no está limitado a los paquetes registrados:
- Github shorthand:
bower install user/package
- Git endpoint:
bower install git://github.com/user/package.git
- Url:
bower install http://example.com/script.js
Lo que viene después
Existen multitud de herramientas que pueden integrarse conjuntamente con Bower para configurar el workflow (flujo de trabajo) como grunt o requireJS. Sin embargo, esto se escapa del alcance de nuestro post de hoy. Espero que os haya gustado y que os sea útil.