Si programas con Node.js, es posible que necesites probar tu aplicación con varias versiones de la plataforma. Por ejemplo, si estás desarrollando con la versión actual con soporte a largo plazo (LTS) pero quieres asegurarte de que va a funcionar con las versiones más modernas y menos estables. O justo al contrario: desarrollas con la versión más actual disponible pero quieres asegurarte de que funciona con la LTS. O quieres probarlo con una más antigua que sabes que vas a tener en algunos servidores... Las razones pueden ser múltiples.

Imagen ornamental - Versiones de Node.js

Una opción (muy mala) de conseguirlo sería estar instalando y desinstalando las diversas versiones según las vayas necesitando para probar. O bien usar varias máquinas virtuales con diferentes versiones instaladas. Pero cualquiera de estas opciones no es operativa en absoluto, ni muchas veces factible siquiera.

Para ayudarnos en este empeño surge una interesante herramienta llamada NVM (Node Version Manager).

Esta utilidad te permite instalar y gestionar diversas versiones de la plataforma Node.js en tu equipo y que coexistan sin entrar en conflicto. Su instalación es muy sencilla y se explica en la página principal del enlace anterior.

El problema es que esta herramienta está pensada para ser utilizada tan solo en sistemas basados en UNIX, como Linux o Mac OS X, por lo que excluye por completo a los programadores de Windows. Si estás en Windows no te servirá.

Cómo instalarlo en Windows

Te remito a las instrucciones de la página oficial anterior para instalarlo en Linux o Mac. Si estás en Windows tienes que recurrir a una herramienta adicional llamada nvm for Windows, creada por Corey Butler, autor también de otros estupendos y conocidos proyectos Open Source.

Lo primero que debes hacer es ir a la parte de "Releases" de la herramienta y descargar la última versión, y más en concreto si quieres la mayor facilidad, el ZIP que se llama nvm-setup.zip:

Archivos de NVM-Windows

Al descomprimirlo verás un ejecutable que es un instalador normal y corriente de los de darle a "Siguiente" todo el tiempo, así que la dificultad de instalación es nula.

Si ya tienes instalada alguna versión de Node, el instalador las detectará y te preguntará si las quieres incluir bajo su control, lo cual te recomiendo. Si no tienes instalado Node, en cuanto termine la instalación de NVM, lo podrás instalar ya usando la propia herramienta en lugar del paquete de instalación normal.

Como no se cansa de repetir Corey en la documentación de la herramienta, este proyecto no es NVM, sino una herramienta diferente. Ahora bien, es perfectamente compatible con la de Linux/Mac, por lo que a efectos prácticos te dará lo mismo.

OJO: dado que para instalarlo necesitas permisos de administrador y la herramienta se instala en el perfil móvil del usuario (en la carpeta "Appdata\Roaming" del perfil de éste, vamos), para poder utilizarlo tendrás que abrir la línea de comandos como administador o no reconocerá el comando cuando lo quieras usar. Si esto te supone un problema, entonces es mejor que descargues el paquete sin instalación y lo copies en alguna carpeta que esté en tu PATH, para que sea accesible siempre.

Ahora que lo tenemos instalado, vamos a ver cómo funciona.

Gestionando las versiones de Node.js en tu equipo

Podemos ver las versiones de Node instaladas en nuestro equipo escribiendo nvm list:

Lista de versiones de mi equipo

Se marca con un asterisco la versión que estás utilizando actualmente si llamas a algún comando de Node o ejecutas algún programa desde la línea de comandos.

Nota: en el NVM original para UNIX este parámetro es ls en lugar de list.

Puedes ver todas las versiones disponibles para descarga escribiendo:

nvm list available

Lista de versiones de Node.js disponibles

Si quieres instalar alguna versión concreta puedes usar el paráemtro install:

nvm install 8.2.0

o para instalar la más reciente disponible:

nvm install latest

Instalar una versión concreta de Node.js

Si no indicamos nada, se instala la arquitectura apropiada para nuestro sistema, es decir, 32 o 64 bits (normalmente esta última), pero podemos instalar una concreta indicándolo a continuación con un 32 o un 64, o incluso ambas a la vez si ponemos all.

Una vez instalada, podemos cambiar de una versión a otra simplemente con el parámetro use:

Cambio de versión de node

Como vemos, primero veo qué versiones tengo disponibles, viendo que la actualmente en uso es la 7.10.0 (la que tiene el asterisco). Lo compruebo mostrando la versión actual del ejecutable por pantalla. Cambio a la versión 8.2.1 (la última en el momento de escribir esto), lo cual se efectúa de manera inmediata, y si compruebo de nuevo la versión, veo que en efecto el cambio se ha producido. ¡Súper útil!

Puedo desinstalar una versión concreta usando el parámetro uninstall, por ejemplo:

nvm uninstall 8.2.0

Por defecto, todas las versiones de Node.js que se van descargando se almacenan en la carpeta nvm de tu perfil móvil, es decir, en la carpeta: C:\Users\<usuario>\AppData\Roaming\nvm. Puedes verlo escribiendo el comando:

nvm root

Si quieres cambiarlo para que se almacenen en otro sitio, puedes especificar la nueva ruta como parámetro de nvm root:

nvm root "F:\Nodejs\Versiones"

Un último detalle importante: los paquetes globales que instales con npm -g no se comparten entre versiones de node.js. Por ello, si cambias de versión y quieres usar un determinado paquete global, debes instalarlo de nuevo. Si solo es para usar paquetes locales, entonces no tienes problema.

¡Espero que te sea útil!

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA