🥇 Instalación global de paquetes

Algunos de los usuarios no pueden realizar instalaciones de forma global, esto se debe a que no poseen permisos de root, para ello hay que utilizar una instalación global pero dentro del directorio del user.

🥤 ¿Cómo corregir los permisos para instalar paquetes globales de NPM?

  1. Vamos a intentar ejecutar la instalación global de jshint.
$ npm instal jshint -g

Si no tuvimos el mensaje de error de permisos o accesos, no es necesario corregir los permisos, pero si no fue así continua con los siguientes pasos.

  1. Creamos el path del nuevo directorio.
$ mkdir ~/.npm-global
  1. Configuramos el nuevo folder para funcionar como el directorio de npm.
$ npm config set prefix '~/.npm-global'
  1. Agregamos el path del bin de este nuevo folder a nuestra variable PATH.
export PATH=~/.npm-global/bin:$PATH
  1. Cerramos y abrimos nuevamente la terminal.
  2. Intentamos nuevamente la instalación de jshint.
$ npm instal jshint -g

Ahora no deberíamos de tener problemas.

🍿 ¿Qué son las dependencias para desarrollo de NPM?

Existen otro tipo de dependencias que solo son necesarias cuando se desarrolla, pero no son dependencias de nuestra aplicación. Estas dependencias de desarrollo se les llama development dependencies.

Supongamos que deseamos utilizar jasmine para ejecutar pruebas mientras se desarrolla una aplicación.

$ npm install jasmine-node --save-dev

Al indicarle el parametro –save-dev en lugar de solo –save, le estamos diciendo a node que esta es una development dependency.

  1. Ejecuta la instalación de jasmine-node dentro de tu proyecto.
$ npm install jasmine-node --save-dev
  1. Abre el archivo packages.json y podrás ver que existe un nuevo bloque para devDependencies.
{
  // ...
  "devDependencies": {
    "jasmine-node": "^1.14.5"
  }
}

🍿 ¿Cómo se instalan los paquetes de NPM de forma global?

Si lo que deseamos es hacer una instalación global de algún paquete, tenemos que utilizar el parámetro -g antes del nombre del paquete, de esta forma el paquete estará disponible para todos los proyectos.

  1. Vamos a la línea de comandos y tecleamos.
$ npm install -g nodemon

Nodemon permite analizar proyectos en nodejs, de manera que si se ejecuta un cambio en alguno de los archivos, nodemon cierra y abre nuevamente automáticamente la aplicación.

  1. Dependiendo de como hayas instalado node y el sistema operativo que utilices, la instalación se realizará en un directorio diferente, en mi caso se encuentra en…
/opt/local/lib/node_modules/
  1. Vamos a retomar la aplicación que creamos unos capítulos atrás…
var http = require('http');

var miServidor = http.createServer((peticion, respuesta) => {
    respuesta.writeHead(200, { 'Content-Type' : 'text/plain' });
    respuesta.end('Hola mundo!');
});

miServidor.listen(1111,'127.0.0.1');
  1. Ejecutamos la aplicación ahora con nodemon.
$ nodemon app.js

El proceso se quedará procesando en el fondo, con un mensaje algo así…

[nodemon] 1.10.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node app.js`
  1. Abrimos la url localhost:1111.

Veremos el mensaje Hola mundo!

  1. Ahora vamos a realizar un cambio al archivo, cambiando el mensaje por Adiós Mundo!.
respuesta.end('Adios mundo!');
  1. Refresca la ventana del navegador y podrás darte cuenta que la pagina ha cambiado, esto, sin necesidad de cerrar y abrir el proceso de node.