bower es un administrador de dependencias para el frontend. De acuerdo a su sitio web:
Los sitios web están hechos de muchas cosas: marcos, bibliotecas, activos y utilidades. Bower maneja todas estas cosas por ti.
Hacer un seguimiento de todos estos paquetes y asegurarse de que estén actualizados (o establecer a las versiones específicas que necesita) es complicado. Bower al rescate!
Bower puede administrar componentes que contienen HTML, CSS, JavaScript, fuentes o incluso archivos de imágenes. Bower no concatena ni minimiza el código ni hace nada más: simplemente instala las versiones correctas de los paquetes que necesita y sus dependencias.
Para empezar , Bower trabaja buscando e instalando paquetes de todo, ocupándose de buscar, encontrar, descargar y guardar lo que está buscando. Bower realiza un seguimiento de estos paquetes en un archivo de manifiesto, bower.json. Cómo se usan los paquetes depende de usted. Bower proporciona ganchos para facilitar el uso de paquetes en sus herramientas y flujos de trabajo .
Bower está optimizado para el front-end. Si varios paquetes dependen de un paquete, jQuery, por ejemplo, Bower descargará jQuery solo una vez. Esto se conoce como un gráfico de dependencia plana y ayuda a reducir la carga de la página.
nota: bower sugiere migrar a herramientas como yarn o webpack.
Bueno, pues al migrar un proyecto que utilizaba bower para el manejo de dependencias necesitábamos saber específicamente que version teníamos de cada una de las librerías (alrededor de 40), debido a que el archivo bower.json nunca se generó. La versión específica de la librería utilizada se encuentra en cada uno de los directorios de la carpeta bower_components/
en el archivo oculto .bower.json
, por ejemplo
./bower_components/jquery/.bower.json
./bower_components/push.js/.bower.json
./bower_components/angular/.bower.json
…etc
bueno, pues no quería tener que ir archivo por archivo buscando la versión de la librería, así que… línea de comandos al rescate! Gracias a lo aprendido en este curso recordé que podía intentar recuperar esta información mediante CLI.
Finalmente el comando que utilicé fue
find . -name '.bower.json' -print0 | xargs -r0 grep 'name":\|version":' > /tmp/dependencias-bower.txt
en esta simple línea de comando se aplican los conceptos de búsqueda con el comando find, redirección, expresiones regulares. Genial!