Si trabajas con varios proyectos que usan Node.js, seguramente te habrás encontrado en que cada uno necesita una versión concreta para su correcto funcionamiento. De esa manera, estarías instalando y/o desinstalando alguno de sus descargables para cada versión. Es un proceso en el que no nos gustaría estar en el que además solo puedes tener instalada una versión a la vez. Es por eso que apareció NVM (Node Version Manager) con el que podrás gestionar múltiples versiones de Node.js en tu sistema cambiando entre versiones de una forma sencilla y rápida.
Antes de instalar (si se tiene instalado Node.js)
Apuntarse la versión instalada de Node.js.
En este artículo utilizaremos la versión 22.11.0 de Node.js a modo de ejemplo.
Hacer una lista de los paquetes instalados de forma global por si se quiere luego volver a instalarlos. Para eso se ejecuta el siguiente comando en una consola:
npm list -g --depth=0
Del listado que pueda aparecer algunos ya los instaló por defecto (como por ejemplo corepack y npm), así que solo apuntaremos los que vayamos a necesitar, en este caso serían «@angular/cli@18.2.11» y «rimraf@6.0.1».
Antes de seguir con la instalación, sería obligatorio quitar Node.js si ya estuviera instalado mediante su msi ó exe. Bastaría con ir a las aplicaciones instaladas (el típico «Agregar/Quitar Programas») y allí seleccionar Node.js y desinstalarlo.
Como a veces sucede, puede que no lo quite todo, es por eso que vamos a comprobar que está todo limpio:
- Vamos a la carpeta de archivos de programa (C:\Program Files) y no debería estar la carpeta «nodejs». Si existe la eliminamos.
- Vamos a nuestra carpeta de perfil de usuario y comprobamos que ha borrado la carpeta de cache de npm (C:\Users\<usuario>\AppData\Roaming\npm-cache). Si existe la eliminamos.
Instalación
Basta con descargar la última versión del listado en https://github.com/coreybutler/nvm-windows/releases, seleccionando el tipo de descargable que más nos apasione (por ejemplo el nvm-setup.exe) e instalarlo. Por defecto, te instalará nvm en una carpeta dentro de tu perfil de usuario «c:\users», con lo que si se logonea otro usuario tendrá problemas para utilizarlo (no tendrá permisos). Si nvm lo van a usar más usuarios dentro del sistema sería conveniente instalarlo fuera de la carpeta «users», por ejemplo en «c:\nvm». En el caso de tener una versión inferior ya instalada descargaremos una actualización (nvm-update) y la ejecutaremos.
Utilización
La herramienta nvm, es una herramienta de línea de comandos, así que para usarla abriremos la consola cmd o poweshell. Chequeamos que esté instalada correctamente mediante su propio comando nvm
apareciendo información de ayuda al respecto:
Si aparece algún error, hay que verificar que existe como instalado (aparecería en el listado de programas instalados de Windows como «NVM for Windows») y que está en la variable de entorno PATH (clave «C:\Users\<usuario>\AppData\Roaming\nvm»).
Ahora instalamos la versión de Node que teníamos previamente, solo basta con escribir «node install <version>»:
nvm install 22.11.0
Se instala la versión de Node.js 22.11.0 y comprobamos que se ha instalado correctamente:
nvm list
Verificamos que sea la versión actual:
nvm current
Debería aparecer la versiónde Node instalada, si no, ejecutamos el comando para utilizarlo:
nvm use 22.11.0
Miramos que esa versión de Node esté ya accesible:
node -v
Y finalmente instalamos los paquetes globales que teníamos inicialmente con el «npm install -g»:
npm install -g rimraf@6.0.1
npm install -g @angular/cli@18.2.11
Consideraciones
Cada versión de Node.js tiene su espacio separado, es por eso, que si quieres seguir usando las mismas utilidades de forma global, deberás instalarlas de nuevo en esa versión de Node (en este ejemplo instalaríamos de nuevo rimraf y angular/cli en la nueva instalación).
El comando que más usarás tras la instalación es el comando «nvm use» que sirve para cambiar entre versiones de Node.js. Según la configuración de usuario/sistema, se necesitará tener permisos de administrador para ejecutarlo. Esto es debido a que nvm crea una carpeta (un enlace simbólico) llamado «nodejs» en «C:\program files» apuntando a una carpeta de node situada en tu perfil de usuario. Cada vez que cambias de versión de node, nvm necesita modificar ese «enlace» y al estar bajo una carpeta de sistema es más restrictivo.
Para más información, en el github del autor (más concretamente en su README) encontraremos toda la ayuda necesaria: https://github.com/coreybutler/nvm-windows