Meet Bower un administrador de paquetes para la web

A medida que la plataforma web ha madurado, las herramientas para gestionar nuestros proyectos también han madurado. En este tutorial, le presentaré una de estas herramientas que facilita mucho más la administración de las dependencias de su proyecto: Bower.

La primera vez que miré a Bower, no estaba exactamente segura de cómo encajaba: no era solo un administrador de paquetes de JavaScript, como Jam, y no era un cargador de módulos, como RequireJS. Se llama a sí mismo un gestor de paquetes del navegador, pero ¿qué significa esto exactamente? ¿En qué se diferencia eso de un gestor de paquetes JavaScript? La principal diferencia es que Bower no solo maneja las bibliotecas de JavaScript: administrará cualquier paquete, incluso si eso significa HTML, CSS o imágenes. En este caso, un paquete significa cualquier código de terceros encapsulado, generalmente accesible públicamente desde un repositorio Git.

Bower es sólo un gestor de paquetes.

Lo importante a tener en cuenta aquí es que Bower es sólo Un gestor de paquetes, y nada más. No ofrece la capacidad de concatenar o minimizar el código, no es compatible con un sistema de módulos como AMD: su único propósito es administrar paquetes.

Basta de chat: vamos a ver cómo funciona esto!


Instalación de Bower

Por supuesto, antes de que podamos usar Bower, tendremos que instalarlo. Esto es fácil: use NPM:

npm install -g bower

Asegúrese de instalarlo globalmente (con -sol), porque esto es específico del proyecto.


Encontrar paquetes

Si no sabe el nombre del paquete que desea, puede encontrar paquetes utilizando el Bower Search mando. Si lo usa sin un término de búsqueda, obtendrá una lista de todos los paquetes de Bower disponibles. Para filtrarlos, usa un término de búsqueda.

 búsqueda de Bower búsqueda de Bower backbone búsqueda de Bower bootstrap

Si prefiere buscar a través de una GUI, diríjase a http://sindresorhus.com/bower-components/.


Instalación de paquetes

Una vez que haya encontrado el paquete que desea instalar, simplemente use instalación de la glorieta para instalarlo.

instalación de bower jquery instalación de bower backbone

Para instalar una versión específica de un paquete, incluya el número de versión después de él, con un hash entre:

Bower instalar jquery # 1.7.0

Mira eso componentes Carpeta que Bower acaba de crear para nosotros. Dentro de ella, deberías ver tres carpetas: columna vertebral, jquery, y guion bajo. El guión bajo fue instalado porque es una dependencia de Backbone; eso es práctico Luego, si compara el contenido de estas carpetas con sus URL de repositorio (de la búsqueda o el resultado de la instalación), verá que son exactamente iguales. Esto ilustra bien el hecho de que Bower es, en su nivel más básico, un atajo para Git..

Pero puedes pasar el instalación de la glorieta Manda otras cosas también. En función de lo que acabamos de ver, tiene sentido que pueda utilizar una URL de Git:

bower install git: //github.com/pivotal/jasmine.git

También puede utilizar un enlace a un solo archivo:

instalación de Bower http://backbonejs.org/backbone-min.js

Incluso puede instalar un paquete desde su propia computadora: algo en lo que está trabajando, quizás:

Bower Install ~ / code / secretProject

Es posible que se note en la salida de la instalación de la glorieta comando que menciona el almacenamiento en caché del paquete: lo hace guardando una copia del mismo en ~ / .bower /. Bower puede usar este repositorio para acelerar las instalaciones posteriores del mismo paquete..


Actualización y desinstalación de paquetes

Si sale la próxima versión de una biblioteca y desea actualizarla, puede hacerlo fácilmente ejecutando esto:

actualización de Bower

Tenga en cuenta que no puede pasar un nombre de paquete a actualizar ordena y solo actualiza ese paquete individual: aun así los actualizará a todos. Puede obtener la última versión de un solo paquete ejecutando instalación de la glorieta ; simplemente sobrescribirá la versión que tienes actualmente.

Si alguna vez cambian sus necesidades, puede desinstalar fácilmente un paquete con el desinstalar mando:

bower desinstalar jquery

Utilizando paquetes

Por lo tanto, tenemos nuestros paquetes instalados. Ahora, queremos usarlos. Recuerde, Bower es solo un administrador de paquetes, por lo que no hay una forma específica de Bower para usar estos paquetes. Por ahora, solo nos quedaremos con las etiquetas de script antiguas:

Abre esto en un navegador y verás el texto "JQUERY!"; esa es la señal de que está funcionando!

Como mencioné anteriormente, Bower no tiene un sistema para cargar paquetes en tu página, pero eso no significa que no debas usar uno. Bower no tiene opiniones y le permite a usted elegir el método con el que se sienta más cómodo. Tal vez son múltiples etiquetas de script que concatenan y minimizan en el momento de la compilación. Tal vez sea RequireJS (que podemos obtener, a través de Bower). Tal vez sea Sprockets u otro sistema de empaquetado de activos del lado del servidor. Es completamente de usted.


Otros comandos Bower

Hay algunos otros comandos de Bower que deberías saber. primero, lista de glorietas o bower ls listará los paquetes que tienes instalados actualmente.

Tenga en cuenta que esto no significa que tengamos jQuery instalado dos veces; significa que jQuery es una dependencia de 'sayHi' (un paquete que construiremos más adelante).

Si desea ver a qué URL del repositorio se refiere un paquete determinado, use la búsqueda de Bower comando, usando el nombre del paquete como el argumento:

los información de la glorieta El comando le dirá qué versiones de un paquete están disponibles:

Finalmente, para eliminar todos los paquetes guardados en caché. ~ / .bower, correr bower cache-clean:


Utilizando la componente.json Expediente

los componente.json El archivo es una parte importante de los paquetes Bower. Veremos cómo crear un paquete a continuación; Pero primero, veamos cómo podemos usar un componente.json archivo para hacer que la instalación de paquetes para un proyecto (no paquete) sea un poco más simple.

Solo hay cuatro propiedades que Bower usa en el componente.json expediente. Primero está el nombre del proyecto; Suficientemente simple.

"nombre": "MyProject"

El siguiente es un número de versión:

"name": "MyProject", "version": "0.0.1"

los principal la propiedad es para definir las partes de su componente, pero como todavía no estamos creando un componente, volveremos a él. La propiedad final es dependencias, que describe de qué paquetes depende nuestro componente (o, en este caso, nuestro proyecto). Es un objeto y para cada propiedad, la clave es el nombre del paquete y el valor es la versión.

"name": "MyProject", "version": "0.0.1", "dependencies": "backbone": "latest", "requirejs": "2.1.1"

Ahora si creas una carpeta de proyecto y pones lo anterior en tu componente.json archivo, podemos instalar todos los componentes simplemente ejecutando:

instalación de la glorieta

Y ahora todos nuestros paquetes están instalados. Si luego deseamos instalar otros paquetes e incluirlos en nuestro componente.json, podemos usar el --salvar bandera.

Bower instalar jquery --save

Ahora puedes abrir nuestro componente.json archivo y ver que una entrada para jQuery se añadió a nuestra dependencias objeto.


Paquetes de construcción

Terminemos este tutorial construyendo nuestro propio paquete súper simple e instalándolo a través de Bower. Será un paquete bastante sin sentido, pero cubrirá casi todos los pasos del proceso de creación de un paquete..

Vamos a construir un paquete super-simple.

Crear un directorio de proyecto, llamado Di hola. Dentro de ella, comenzaremos con nuestra componente.json expediente. Estás familiarizado con todas las propiedades, excepto principal.

"name": "SayHi", "version": "1.0.0", "main": "./sayhi.js", "dependencies": "jquery": "latest"

los principal la propiedad debe ser la ruta al archivo principal que compone su paquete; Si tiene varios archivos, puede establecerlo en una serie de rutas. Para ser honesto, no estoy exactamente seguro de lo que hace esto. Solo se le permite tener un archivo de cada tipo (por lo tanto, uno .html archivo, o uno .js archivo) en su principal array, y Bower seguirá descargando todo el repositorio, y no solo los archivos principales cuando lo instales. No puedo encontrar ninguna documentación que indique claramente para qué sirve, pero puedo encontrar a otros que se preguntan lo mismo. Tal vez será utilizado en futuras versiones de Bower. Si tiene alguna información al respecto, deje un comentario a continuación.!

De todos modos, ahora es el momento de crear el repositorio Git.

git init git agregar component.json git commit -m 'added component.json'

Como ha visto, cuando instalamos las dependencias de nuestro paquete mientras estamos aquí en desarrollo, obtendremos una componentes Carpeta en nuestro repositorio. He visto varios repositorios de componentes diferentes, y ninguno de ellos tiene esto componentes carpeta registrada, así que vamos a agregarla a la .gitignore expediente; las dependencias se instalarán automáticamente cuando un usuario instale nuestro paquete. Al desarrollar para Node.js, hacemos lo mismo con el nodo_módulos carpeta y el paquete.json expediente.

Entonces, en un .gitignore expediente:

componentes

Y entonces:

git add .gitignore git commit -m 'agregado .gitignore file' bower install

Ahora, podemos escribir nuestro sayhi.js código:

función sayHi (selector) var el = $ (selector); función de retorno (nombre) el.text ("Hola" + nombre + "!"); 

Es bastante simple; acabamos de pasar el Di hola funciona como un selector para un elemento, y devuelve una función que puede tomar un nombre y escribir el mensaje en ese elemento. Lo he hecho de esta manera porque nos permite "almacenar en caché" el elemento y porque hace que el código sea un poco más interesante..

Bien, ahora tenemos que comprometernos:

git add sayhi.js git commit -m 'agregado sayhi.js'

El último paso es agregar una etiqueta Git con el número de versión, porque así es como Bower distingue la versión:

git tag -a 1.0.0 -m 'sayHi v1.0.0'

El siguiente paso sería enviar este repositorio a GitHub y luego registrar el paquete con Bower. El registro es simple: use el registro de la glorieta comando, pasándole el nombre que desea que tenga su paquete y la URL de git para el repositorio:

bower register packageName git: //your/git/url.git

No voy a hacer esto, porque es un paquete inútil. Pero recuerde que también podemos usar Bower para instalar un paquete local. Lo que haré para simular GitHub lo más cerca posible es crear un clon simple de este repositorio (GitHub almacena repositorios vacíos).

git clone - ruta anterior / a / sayHi ruta / to / sayHi.git

Cree una nueva carpeta de proyecto fuera de su Di hola carpeta, discos compactos en, y prueba esto:

ruta de instalación de Bower / to / sayHi.git

El resultado debe indicar que se instaló bien y que jQuery también se instaló. Se puede ver que este fue el caso mirando dentro de la componentes carpeta.

Ahora, podemos usar el código en una index.html expediente:

Abrelo. Funciona!


Configurando Bower

Configure Bower creando una .Bowerrc expediente.

No hay mucho que puedas hacer para configurar Bower, pero hay algunas cosas. Configure Bower creando una .Bowerrc archivo dentro de su directorio personal. Es un archivo JSON con una combinación de estas tres propiedades:

  • directorio: el nombre del directorio de componentes; por defecto componentes.
  • json: el nombre del archivo de componentes; por defecto componentes.json.
  • punto final: Esto le permite ejecutar su propio servidor Bower, para servir paquetes personalizados desde detrás de un firewall. Puede obtener una implementación simple de un servidor Bower en Github.

Por ejemplo:

"directorio": "paquetes", "json": "bibliotecas.json"

Conclusión

Si ha mirado a otros gestores de paquetes, puede que se pregunte qué es lo atractivo de Bower, especialmente cuando parece carecer de muchas características que otros tienen. Yo también tenía la misma pregunta. Pero después de entender cómo usar Bower, esta línea de las preguntas frecuentes tenía mucho más sentido:

Bower es un componente de nivel inferior que Jam, Volo o Ender. Estos gestores podrían consumir Bower como una dependencia..

Por lo tanto, incluso si no usa Bower por sí mismo, es bueno conocer los comandos, ya que se construirán otras herramientas a su alrededor. De hecho, el nuevo y popular Yeoman usa Bower para la administración de paquetes. Si aún no está familiarizado con Yeoman, ese es su próximo paso después de leer este artículo.!

Así que ese es Bower, el gestor de paquetes del navegador completamente sin opiniones. ¿Qué pensáis? ¿Es esta una biblioteca que utilizará o no le importaría menos? Vamos a escucharlo en los comentarios..


Campo de golf

  • Cenador
  • Bower en Github
  • Grupo de Google Bower