Cómo instalar NPM y Bower

Normalmente utilizamos paquetes de terceros en proyectos de diseño web..

Cargamos en CSS de terceros desde proyectos como Bootstrap y Foundation, y scripts como jQuery y Modernizr. Cada vez más, también utilizamos paquetes de terceros como parte de los procesos de desarrollo, como compiladores para preprocesadores CSS o herramientas de limpieza y compresión de código para maximizar la velocidad de carga y ejecución de nuestros sitios.

Tratar con todos estos paquetes puede convertirse rápidamente en un desastre de descarga manual, transferencia de archivos y actualización. Claro, lo hemos estado haciendo funcionar, pero lleva mucho tiempo y es poco manejable, lo que a menudo deja a los proyectos con un código desactualizado. Ahora hay una mejor manera, usando los gestores de paquetes de línea de comando.

En este tutorial, aprenderá cómo hacer que el manejo de paquetes de terceros sea tan solo escribir unos cuantos comandos de dos a cinco palabras.

Nota: Si no ha seguido el primer tutorial de esta serie, Comprendiendo los conceptos básicos, le resultará útil pasar por eso antes de comenzar aquí..

Los gestores de paquetes "Big Two"

Para comenzar a usar la línea de comandos para manejar paquetes de terceros, lo primero que necesitará es un "sistema de administración de paquetes" o "administrador de paquetes". Las dos opciones que son por mucho las más populares entre los diseñadores web en este momento son npm y Bower, y esos son los sistemas que aprenderás a usar hoy..

npm (a través de Node.js)

Es posible que haya oído hablar de Node.js, una bolsa de productos basados ​​en JavaScript que puede impulsar todo, desde plataformas de blogs hasta IDE de codificación, centros multimedia y sistemas operativos completos..

Junto con una instalación de Node.js, viene el gestor de paquetes npm, un sistema tremendamente útil que se utilizará a menudo en esta serie..

Contrariamente a lo que podría pensar primero, npm hace no significa "Gestor de paquetes de nodos". Oficialmente significa "Npm no es un acrónimo" y en la parte superior del sitio verás pequeños chistes que surgen en cada actualización, como "nunca metes a los monos" y "novatos desfilando majestuosamente".

A partir de este momento, npm proporciona acceso y administración a 127,664 paquetes que están diseñados para diferentes tipos de propósitos. Entre los artículos útiles para el diseño web encontrarás paquetes como:

  • Aguja
  • nodo-sass
  • MENOS
  • Jade
  • UglifyJS
  • Cenador
  • Gruñido
  • Trago
  • Hacendado
  • Autoprefixer
  • BrowserSync
  • Fundación CLI
  • UglifyJS
  • limpio-css
  • Jeet.gs
  • Kouto suizo

Para los fines de este tutorial, utilizaremos npm junto con Node.js, sin embargo, es una entidad independiente que se puede usar con otros sistemas como el IO.js recién llegado..

Como principiante, recomiendo seguir junto con los tutoriales que utilizan Node.js, pero quizás desee explorar otras opciones más adelante..

Cenador

Mi introducción al uso de la línea de comandos para la administración de paquetes de terceros llegó a través de Bower. Alguien me avisó simplemente diciendo

"¿Has probado Bower? ¡Es impresionante!"

No tenía ni idea de para qué se iba a usar, así que fui a www.bower.io y una mirada a la lista de paquetes disponibles fue todo lo que necesitó para que la bombilla comenzara a encenderse..

La biblioteca de paquetes Bower incluye cosas como:

  • Oreja
  • AngularJS
  • jQuery
  • Fuente impresionante
  • HTML5 boilerplate
  • Animate.css
  • Normalize.css
  • Modernizar
  • Guion bajo
  • IU plana
  • jQuery UI
  • Bigote daliniano
  • Albañilería

Es muy probable que esté utilizando al menos uno o dos de esos paquetes en sus proyectos de forma regular. Bower hace que sea más rápido y más fácil seguir haciéndolo..

Cuándo usar Bower vs. npm

En algunos casos, puede encontrar un paquete disponible tanto en npm como en Bower. Si es así, ¿qué versión deberías usar??

Ambas opciones instalarán y actualizarán paquetes tan rápidamente como entre sí. No hay reglas duras y rápidas sobre las cuales usar, y finalmente desarrollará su propia manera de hacer las cosas, así que le daré una regla general en la que puede basar sus decisiones por ahora..

Desde la perspectiva del diseño web, la diferencia realmente se reduce a cómo utilizará los paquetes, y los dos casos de uso típicos que tendrá serán para la implementación del front-end frente al uso de desarrollo..

Bower está diseñado para la administración de paquetes front-end, así que elíjalo si está buscando algo que los visitantes del sitio consumirán a través de un navegador.

Por otro lado, los paquetes npm serán la opción a seguir si solo va a utilizar un paquete como parte de su proceso de desarrollo y no se incluirá en el producto terminado..

Instalación de npm y Bower

Instala Node.js y npm

Afortunadamente, la instalación de npm es bastante sencilla, ya que se incluye con el instalador de Node.js. Diríjase a http://www.nodejs.org y descargue el instalador para su plataforma. Instálelo en su máquina y npm se instalará junto con él, entonces estará listo para continuar.

Importante! Incluso si ya tiene instalado Node.js en su sistema, siga el paso anterior para asegurarse de tener la última versión. Si está ejecutando una versión obsoleta, algunos de los pasos que debe seguir a lo largo de esta serie pueden no funcionar..

Actualizar npm

De acuerdo con el sitio de npm, es probable que haya una versión posterior de npm disponible que la que se incluye con la instalación de Node.js.

Para asegurarse de que está en la última versión, ejecute:

[sudo] npm install npm -g

Instalar Git / MsysGit

Git, junto con Node.js y npm, es un requisito previo para usar Bower. Git también es un requisito previo para algunos de los otros paquetes orientados al diseño web que querrá utilizar, por lo que vamos a ponerlo todo al cuadrado en su sistema antes de continuar.

Para usuarios de OSX

Para los usuarios de OSX, querrá ir al sitio web principal de Git, obtener el instalador binario y ejecutarlo como lo haría con cualquier otro instalador de aplicaciones: http://git-scm.com/download/mac

Para usuarios de Windows

Para utilizar Bower en Windows, necesitará una versión específica de Git para Windows llamada msysGit. Golpea el Descargar abotone y tome el instalador ejecutable, pero no lo ejecute todavía: http://msysgit.github.io

La razón por la que le dije que no lo instalara aún es que tendrá que tener cuidado de elegir la configuración correcta al ejecutar el instalador. Cuando vea la pantalla de abajo, asegúrese de verificar Ejecutar Git desde el símbolo del sistema de Windows.

Para obtener más información sobre la instalación de msysGit como un requisito previo para Bower, consulte: Una nota para usuarios de Windows.

Instalar Bower

Bower se puede instalar a través de npm ejecutando este comando:

[sudo] npm install -g bower

Usuarios de Mac, porque estamos usando el -sol bandera para instalar Bower a nivel mundial, recuerde que es probable que tenga que incluir sudo al inicio del comando, ingrese su contraseña cuando se le solicite.

Fundamentos de npm y Bower

Inicializar un proyecto

Tanto npm como Bower trabajan con archivos de manifiesto especializados que contienen información sobre un proyecto y una lista de paquetes que utiliza. Con los proyectos npm, ese archivo se llama "package.json" y en los proyectos Bower se llama "bower.json". La forma más fácil de crear estos archivos es usar el en eso comando asociado a cada uno. Hagamos eso ahora.

Via npm

Con su terminal apuntando a la carpeta raíz de su proyecto, ejecute este comando:

npm init

Esto le hará una serie de preguntas que puede responder dentro del terminal, proporcionando la información de la cual se creará su archivo "package.json".

Lea más sobre el npm init comando en: https://docs.npmjs.com/cli/init

Via Bower

De nuevo, con su terminal apuntando a la carpeta raíz de su proyecto, ejecute este comando:

Bower Init

Al igual que con el proceso de inicialización de npm, responderá a una serie de preguntas y sus respuestas formarán su archivo "bower.json".

Lea más sobre el Bower Init comando en: http://bower.io/docs/creating-packages/#bowerjson

Buscando Paquetes

Con el proyecto inicializado está listo para comenzar a traer paquetes. Para hacer esto, necesitará encontrar los paquetes que desea usar a través de npm o Bower.

Debe buscar en la ubicación correcta ya que necesita saber el nombre correcto del paquete dentro de los ecosistemas npm o Bower para poder instalarlo y actualizarlo.

Via npm

Puede buscar los paquetes que desea usar con npm a través de la barra de búsqueda en la parte superior de su página de inicio.

También es posible buscar directamente a través de la línea de comandos con búsqueda de npm , sin embargo, personalmente me resulta más fácil encontrar lo que estoy buscando directamente en el sitio de npm.

Cuando encuentre el paquete que desea usar, tome nota del nombre del paquete.

Via Bower

La búsqueda de paquetes Bower se puede hacer a través de http://bower.io/search/.

Al igual que con npm, tome nota del nombre del paquete que desea usar una vez que lo encuentre.

Instalación de nuevos paquetes

Una vez que haya encontrado el paquete que desea usar, está listo para instalarlo. Aquí es donde usarás el nombre del paquete del que tomaste nota. En las instrucciones a continuación, usa ese nombre donde veas. en un comando.

Via npm

Para instalar un paquete localmente, es decir, solo dentro de la carpeta de su proyecto, ejecute:

npm instalar 

El paquete se descargará en una subcarpeta llamada "node_modules", por lo que estará disponible para su uso dentro de su proyecto. Por ejemplo:

Además de instalar paquetes localmente, también existe la opción de instalar paquetes npm globalmente..

Los paquetes instalados localmente solo están disponibles para usar dentro del contexto de su proyecto, pero los paquetes instalados globalmente se pueden usar desde cualquier parte de su máquina. Por ejemplo, una vez que el paquete “menos” se instala globalmente, puede usarlo para compilar cualquier documento “.less”, en cualquier parte de su sistema.

Para instalar globalmente un paquete adjunte el -sol bandera a su comando:

[sudo] npm install  -sol

Via Bower

El proceso de instalación para los paquetes Bower es casi exactamente igual que con npm, usando el comando:

instalación de la glorieta 

La diferencia es que los paquetes Bower se colocan en una subcarpeta llamada "bower_components", por ejemplo:

Debido a que utilizará Bower para implementar paquetes front-end en proyectos específicos, todas sus instalaciones pueden realizarse localmente, por lo que no necesitará usar el -sol bandera.

Trabajando con Dependencias

Si está interesado en compartir o incluso simplemente duplicar y moverse en un proyecto en el que ha usado npm o Bower, la administración de dependencias es una gran cosa que debe saber. Dejame explicar por que.

Recordarás los archivos de manifiesto que creaste anteriormente; "Package.json" y "bower.json". En cada uno de estos archivos puede agregar una lista de paquetes de los que depende su proyecto..

Ya has visto cómo los paquetes npm entran en una carpeta llamada "npm_modules" y Bower en "bower_components". Bueno, lo bueno es que si desea compartir su proyecto, puede omitir por completo ambas carpetas, siempre y cuando tenga sus dependencias enumeradas en sus archivos de manifiesto..

Esto puede ahorrarle fácilmente un par de cientos de megabytes, por lo que es mucho más fácil mover su proyecto..

Cuando alguien más se apodera de tu proyecto puede ejecutar npm instalar y todos los paquetes enumerados en el archivo "package.json" se descargarán automáticamente en una nueva carpeta "npm_modules".

Del mismo modo, el comando. instalación de la glorieta descargará automáticamente las dependencias enumeradas en el archivo "bower.json" y las colocará en una nueva carpeta "bower_components".

Dependencias de producción y desarrollo

Hay dos tipos de dependencias:

  1. Dependencias de producción - en el contexto del diseño web, esto se refiere a los paquetes que se implementarán en la parte frontal, por ejemplo. Modernizr para la compatibilidad entre navegadores.

  2. Dependencias de desarrollo - en el contexto del diseño web, esto se refiere a los paquetes utilizados durante el desarrollo, por ejemplo, MENOS para compilación de archivos .less.

Bower y npm le permiten especificar dependencias de producción y desarrollo. Sin embargo, como mencionamos anteriormente, utilizará Bower para los paquetes front-end y npm para los paquetes de desarrollo. Como tal, configuraremos sus paquetes Bower como dependencias de producción, y sus módulos npm como dependencias de desarrollo..

El método para configurar las dependencias es el mismo tanto en npm como en Bower, y es agregar un indicador al comando que se usa para instalar un paquete..

Instalar como Dependencia de Desarrollo

Para configurar un paquete como una dependencia de desarrollo agregue el --save-dev bandera, por ejemplo.

npm instalar  --save-dev

El paquete se instalará de la misma manera que ya ha visto, pero se agregará a la lista de Dependencias en su archivo "package.json" así:

Instalar como dependencia de producción

Para configurar un paquete como una dependencia de producción agregue el --salvar bandera, por ejemplo.

instalación de la glorieta  --salvar

En este caso, el paquete se añadirá a la lista de dependencias en el archivo "Bower".

Nota: al instalar paquetes npm globalmente con el -sol bandera, no tienes que preocuparte por usar --salvar ni --save-dev banderas.

Actualización de paquetes

Actualizar paquetes también es un comando de una línea para Bower y npm.

Via npm

Para los paquetes instalados localmente, ejecute el siguiente comando en la carpeta raíz de su proyecto donde su carpeta "node_modules" es:

actualización de npm 

Para actualizar los paquetes instalados globalmente, agregue el -sol bandera:

[sudo] npm update  -sol

También puede omitir el nombre del paquete para poder actualizar por lotes todos sus paquetes a la vez..

Para actualizar todos los paquetes en un proyecto específico, apunte su terminal a su carpeta raíz y ejecute:

actualización de npm

Y para actualizar todos los paquetes instalados globalmente, ejecute:

[sudo] npm update -g

Via Bower

Actualizar los paquetes de Bower es esencialmente lo mismo que con npm. Desde la carpeta raíz de su proyecto, la que contiene su carpeta "bower_components", ejecute este comando:

actualización de Bower 

La última versión se descargará automáticamente y se agregará a su carpeta "bower_components".

Usando npm y paquetes de Bower

Una vez que tengas tus paquetes instalados, probablemente quieras saber cómo puedes usarlos, ¿verdad??

Con los paquetes Bower, el proceso puede ser el mismo que usaría para extraer activos normalmente, es decir, a través de guión o enlazar elementos en su HTML, cargando archivos directamente desde su carpeta "bower_components".

Sin embargo, esto no es óptimo y hay mejores maneras de hacerlo. Por ejemplo, puede combinar todos los archivos JS que está usando de sus paquetes Bower en un archivo comprimido y cargarlo en su lugar..

Verá una demostración de cómo hacerlo en el próximo tutorial Automatización con los ejecutores de tareas.

Los paquetes instalados a través de npm normalmente se utilizarán a través de la línea de comandos o los scripts del ejecutor de tareas.

Los diferentes paquetes vienen con su propio conjunto de comandos integrados que puede usar para todo tipo de tareas diferentes como compilar, comprimir, combinar y más. Estas tareas específicas del paquete se pueden automatizar a su vez mediante la configuración de los ejecutores de tareas para ejecutar varias tareas a la vez..

Aprenderá a usar los paquetes npm de ambas formas en los tutoriales posteriores de esta serie..

En el siguiente tutorial

A continuación, veremos cómo puede aprovechar la línea de comandos para agregar una nueva capa de eficiencia a su código frontal, tanto en cómo lo desarrolla como en cómo se ejecuta una vez que se completa.

Aprenderá a usar la línea de comandos para la compilación del preprocesador, el autorefixing de CSS, la optimización de archivos JS y CSS, y la compilación de abreviaturas y plantillas HTML..

Te veré en el siguiente tutorial, Encender el código de front-end.