Cómo instalar Node.js con NVM

Introducción

Como ya vimos en el artículo que escribí sobre cómo instalar Node.js, existen varias formas de hacer este proceso, unas más sencillas y otras más complicadas. En esta ocasión voy a explicar una forma de instalar Node.js usando el paquete Node version Manager, también conocido como NVM.

¿Qué es Node Version Manager?

Node Version Manager, o NVM por sus siglas en inglés, es un proyecto de OpenSource que permite la gestión y uso de varias versiones de Node.js en la misma máquina, activando la que se desee cuando sea necesario.

Es decir, podemos tener instaladas tantas versiones distintas de Node.js como queramos, y usar cada vez aquella que más nos interese. Todo esto sin el engorro de andar instalando y desinstalando cada vez. Este comportamiento es muy parecido al del gestor de versiones para el lenguaje Ruby.

¿No es Grandioso?

Esta maravilla está disponible para Linux y Mac. Pero si usas Windows tengo malas y buenas noticias. Las malas es que NVM no soporta directamente el sistema operativo de los mozalbetes de Redmond... aunque es posible que llegue a funcionar usando el WSL (Windows Subsystem for Linux), no es seguro 100%. Las buenas noticias son que tienes a tu disposición dos proyectos en GitHub que ofrecen una alternativa a NVM.

Estos son nvm-windows y nodist.

Cómo Instalar NVM

Para instalar NVM en Linux y en Mac podemos hacerlo mediante un comando que se puede ejecutar usando cURL o wget. Ambos ejemplos son equivalentes:

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

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

Esto clonará el proyecto de GitHub a una carpeta oculta en tu carpeta home, además de modificar algunos ficheros de configuración en ese directorio. La carpeta donde se clona el proyecto es ~/.nvm

Una vez ha finalizado el proceso de instalación, el creador de NVM recomienda cerrar la ventana de la terminal que has usado para instalarlo, asi que hazle caso, venga...

Aclarar, que hay varias formas de instalar NVM, pero que os explico esta porque me parece la más sencilla. Si eres de los que gusta de experimentar, date una vuelta por el repositorio de NVM en GitHub y encontrarás toda la información necesaria en este sentido... seguimos.

Ahora podemos confirmar que NMV está correctamente instalado, ejecutando nvm -v. Si nos devuelve el número de la versión, podemos continuar.

Cómo Instalar Node.js con NVM

En este punto podemos usar NVM para instalar la versión de Node.js que queramos, así por ejemplo si queremos instalar la versión más reciente de Node.js ejecutamos:

nvm install node

Recuerda que este comando instala la versión más reciente de Node.js, por ello la versión que nos instala depende de cuál es la última versión que han liberado. Destacar que la palabra node del comando hace referencia a "la última versión disponible", sea LTS o no.

Quizá recuerdes de la entrada dedicada a la instalación de Node.js, que comenté que Node.js tiene dos tipos de versiones, la LTS y la normal (o no LTS), por llamarla de alguna forma. Pues bien, para indicar a NMV que queremos instalar la versión LTS mas reciente usaremos el flag --lts:

nvm install --lts

En caso de querer una versión concreta de Node.js, tendremos que ejecutar el mismo comando pero cambiando la palabra node por el número de la versión que queremos:

nvm install 10
nvm install 12.3

Recuerda que puedes instalar tantas versiones como quieras, que ahí está la gracia de este modo de instalación, la posibilidad de coexistir distintas versiones de Node.js a la vez y sin conflictos.

Cómo usar NMV

Una vez instaladas todas las versiones que deseemos, podremos hacer uso de cualquiera de ellas para nuestros proyectos escribiendo nvm use seguido de la versión instalada que deseamos usar. Ejemplos:

nvm use node
nvm use 12.2
nvm use --lts

La versión de Node.js que elijamos estará operativa hasta que se cierre la terminal de comandos que hayas usado para iniciarla.

Otros comandos de NVM

  • nvm ls-remote : Lista las versiones disponibles para instalar.
  • nvm ls : Lista las versiones instaladas.
  • nvm ls <version> : Lista las versiones instaladas de la rama indicada.
  • nvm current : Muestra la versión activada actualmente.
  • nvm deactivate : Desactiva la versión en uso de actualmente.
  • nvm uninstall <version> : Desinstala la versión indicada.
  • nvm help : Muestra la ayuda.

Para finalizar, si te cansas de NVM y quieres eliminarlo, es tan simple como borrar las carpetas: .nvm, .npm, y .bower de tu carpeta de usuario.

Destacar que el uso desde Node.js es el mismo y no cambia nada de la forma de ejecutar el script de inicio o de trabajar con el código, aunque yo no recomendaría el uso de NVM para entornos de producción ya que puede chocar con PM2 y además NVM solo se mantiene operativo dentro de la terminal que ejecuta el comando nvm use.

Para tener más información, lo mejor será dar un paseo por la página del proyecto NVM en GitHub