Instalar Node.js y Npm

Para gestionar las diferentes versiones de Node.js y Npm me gusta utilizar el script Node Version Manager (de la misma forma que rvm para ruby o sdkman para java).

La página del proyecto nvm es:

https://github.com/creationix/nvm

Este script permitirá que diferentes versiones de Node.js y Npm convivan en el mismo equipo de forma aislada. También nos permitirá cambiar de versión fácilmente.

En el momento de escribir este texto, la última versión de nvm es la 0.33.6. Para instalarla, es suficiente con ejecutar este script:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

Una vez instalado podemos comprobar que todo ha ido bien cerrando y volviendo a abrir el terminal y ejecutando:

nvm

Nos aparecerá un texto con las diferentes opciones que permite nvm.

Para instalar la última versión LTS (Long Term Support) de Node.js y Npm ejecutaremos:

nvm install node --lts

Una vez terminado el proceso podemos comprobar la ruta donde se encuentra npm instalado ejecutando:

which npm

En mi caso, este comando devuelve la ruta:

/home/eduardo.rodriguez/.nvm/versions/node/v6.10.3/bin/npm

Y con esto, ya tenemos instalado Node.js y Npm en nuestro entorno.

Saludos

Angular Proxy Config para evitar errores de Cross Domain

En mi entorno de desarrollo, tengo un webservice hecho con Java y que està accesible por el puerto 8888.

El frontend es una aplicación javascript Angular y que está accesible por el puerto 4200.

Para evitar problemas de Cross domain (el browser impide que el frontend ejecute peticiones HTTP contra un host/puerto distinto).

Crear el fichero proxy.conf.json en la raíz del proyecto Angular:

{
    "/oauth": {
        "target": "http://localhost:8888",
        "secure": false
    } 
}

Arrancar el servidor de desarrollo indicando la configuración proxy.

ng serve --proxy-config proxy.conf.json

De esta forma, cuando se haga una petición a http://localhost:4200/oauth, realmente se estará ejecutando contra http://localhost:8888/oauth.

En producción tendremos que configurar NGINX de la misma manera.