El software nvm permite instalar y gestionar distintas versiones de NodeJS en un ordenador, lo que facilita el trabajo con proyectos que requieren versiones distintas.
nvm es un software que podemos instalar para contar con varias versiones distintas de NodeJS en un mismo ordenador. Gracias a nvm podemos instalar cualquier versión de NodeJS que necesitemos en un proyecto, ya sea una versión actual o una versión antigua. Además permite intercambiar la versión de NodeJS que tenemos activa en un momento dado, entre todas las que se hayan instalado en el sistema.
Además, nvm soluciona algunos problemas típicos que suelen ocurrir cuando se trabaja con npm y al instalar dependencias globales se requieren permisos de sudo. Con nvm no los necesitarás y el software funcionará correctamente.
Toda la documentación se encuentra en la página de nvm.
Más información:
Sistemas compatibles con nvm
En principio nvm funciona sobre sistemas Linux y Mac. Por supuesto, sobre Windows también lo podemos hacer funcionar si trabajamos con Linux Subsystem, lo que resulta bastante recomendable para mantener un entorno de desarrollo en el sistema de Microsoft. Instalar nvm en Windows si usamos Linux Subsystem se haría igual a como se hace sobre Linux común.
También existe una versión para Windows que se puede usar, si no usamos Linux subsystem, aunque no es el mismo software original y puede que no tenga todas las funciones. El software se llama nvm-sh
Alternativas a nvm para Windows
Existen varios programas que puedes usar si no puedes trabajar con nvm por estar en Windows. Insistimos que si usas WSL (Windows Subsystem Linux) es posible instalar y trabajar con nmv, siempre que hagas el uso de NodeJS desde el terminal de tu distribución de Linux.
- Volta: Ellos mismos se califican como un "Gestor de Herramientas de JavaScript sin complicaciones". Volta se centra en manejar las versiones de Node.js con un enfoque por proyecto, lo que permite cambiar fácilmente entre diferentes versiones de Node.js y sus paquetes asociados según las necesidades de cada proyecto específico, aportando mucha más versatilidad que nvm y permitiendo que todos los desarrolladores trabajen con la misma versión de Node, así como las mismas versiones de las herramientas.
- nvm-windows: Funciona como un instalador que puedes descargar desde la página del proyecto y permite instalar las versiones de Node que quieras. Los comandos y algunas cosas de funcionamiento difieren del nvm común.
-
FNM (Fast Node Manager): Escrito en Rust y multiplataforma permite intercambiar de manera sencilla y rápida las versiones de NodeJS. Lo puedes instalar en Windows usando gestores de paquetes como Chocolatey
choco install fnm
o Wingetwinget install Schniz.fnm
. También puedes trabajar por proyecto creando un archovo que se llama .node-version donde indicas qué versioón de NodeJS quieres en ese proyecto. -
NVS (Node Version Switcher): Se instala en Windows con un instalado .msi, pero también lo puedes obtener por Winget
winget install jasongin.nvs
o Chocolateychoco install nvs
. A partir de ahí tienes unos comandos en terminal para instalar las versiones de Node que necesites y cambiar entre ellas. Además tiene un mecanismo también para setear la versión que queremos en los proyectos.
Instalar nvm
Puedes instalar nvm antes de instalar NodeJS, aunque si antes has instalado "Node" no es problema.
Para instalar nvm tenemos disponible un script bash, que se puede ejecutar por igual en Linux y Mac. El Script lo puedes obtener y ejecutar todo de una con este mismo comando de consola.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
Consulta la página de GitHub de nvm por si este comando se actualiza o para encontrar otras alternativas que usan wget en vez de Curl. En esta misma página también encontrarás diversas soluciones a problemas típicos que pueden surgir en la instalación.
Una vez lanzado ese comando se descargará el script bash y se ejecutará, todo de una vez, y ya tendrás nvm disponible en tu sistema.
Si quieres verificar la instalación de nvm puedes lanzar el comando siguiente:
command -v nvm
Si todo ha ido bien y se encuentra correctamente instalado, tienes que recibir como respuesta "nvm".
También puedes probar a recibir la versión de nvm instalada con este comando:
nvm -v
Instalar una versión de NodeJS con nvm
Una vez hemos instalado nvm podemos instalar cualquier versión de NodeJS que necesitemos. Para ello desde el terminal usamos este comando:
nvm install node
Ese comando provocará la instalación de la versión más reciente de NodeJS, que haya en el momento actual.
También puedes solicitar que se instale una versión concreta de NodeJS que necesites en algún proyecto.
nvm install 10.10.0
Otra posibilidad es instalar una versión de Node mediante su nombre en clave. Por ejemplo, "Hydrogen" es el nombre de la LTS Node 18 y podríamos instalarla con este comando:
nvm install Hydrogen
Recuperar las versiones de NodeJS que se encuentran instaladas
En todo momento puedes cambiar la versión de NodeJS operativa, entre cualquiera de las que tengas instaladas.
Si no sabes qué versiones tienes en tu sistema puedes obtener un listado con el comando "ls":
nvm ls
El comando ls te dice además qué versión es la que tienes ejecutándose en un momento dado. En la siguiente salida del comando veríamos que tenemos dos versiones instaladas, v8.17.0 y v16.3.0. Entre ellas tenemos activa la versión v8.17.0.
-> v8.17.0
v16.3.0
default -> node (-> v16.3.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.3.0) (default)
stable -> 16.3 (-> v16.3.0) (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.1 (-> N/A)
lts/fermium -> v14.17.1 (-> N/A)
El comando también nos devuelve nombres de versiones de nvm, que podríamos instalar directamente con ese nombre.
nvm install lts/dubnium
Ese comando instalaría la versión v10.24.1 de Node.
Recuperar las versiones de Node remotas
Hay veces que haciendo nvm ls
no te lista las últimas versiones disponibles de manera oficial en Node, sino las disponibles en tu sistema. Si lo deseas, en estos casos puedes recuperar las versiones de nvm remotas con el comando:
nvm ls-remote
Gracias a ese comando verás todas las versiones de Node disponibles históricamente. Podrás elegir una versión por su nombre o versión igualmente a lo que hemos descrito anteriormente.
Intercambiar versiones de NodeJS
Cada vez que quieras cambiar la versión de NodeJS que tienes activa lanzarás el comando "nvm use", seguido de la versión que sea o su nombre. Por ejemplo podríamos lanzar el "use" con el nombre "default", que suele ser la última versión más reciente, con el comando siguiente:
nvm use default
Podemos usar una versión con un nombre dado:
nvm use lts/carbon
O una versión con su número exacto:
nvm use v16.3.0
Recuerda que los nombres de las versiones y sus números los recuperas con "nvm ls".
Definir la versión predeterminada de Node con nvm
Podemos definir la versión predeterminada que debe usarse de NodeJS cuando arrancamos el sistema. Para ello simplemente tenemos que editar el alias "default", indicando la versión de Node exacta, de esta manera:
nvm alias default v14.11.0
También podemos indicar la versión de Node por su nombre:
nvm alias default lts/fermium
Instalar paquetes globales de npm para cada versión de NodeJS
Un detalle del uso de nvm del día a día es que los paquetes que tenemos instalados de manera global con npm son específicos para cada versión de NodeJS de entre todas las posibles.
Por tanto, podría ocurrir que instales un paquete dado, por ejemplo "live-server", para la vesión v16.3.0:
nvm use v16.3.0
npm i -g live-server
Y luego si haces un cambio de versión de Node, podrías comprobar que el comando live server no está disponible, porque ese paquete fue instalado para una versión de NodeJS diferente.
nvm use lts/carbon
live-server
Te dirá que "live-server: command not found", porque lo instalaste para una versión distinta de Node.
Fijar la versión de Node en un proyecto con .nvmrc
Mediante el archivo .nvmrc que colocamos en la raíz del proyecto podemos fijar la versión de NodeJS que se usará, lo que nos ayuda a configurar esta versión con nvm mediante el comando "use".
En el contenido de el archivo .nvmrc colocaremos simplemente la versión de Node que se desea usar, por ejemplo algo como
v16.14.2
Podemos volcar el contenido de la versión actual de Node que estamos usando al archivo .nvmrc con este comando de consola.
node -v > .nvmrc
Posteriormente, podemos lanzar otro comando para que nvm se encargue de cambiar a la versión de Node que deseeamos usar en ese proyecto con el comando:
nvm use
Crea artículos, recursos o comparte información sobre nvm
Temas relacionados
Preguntas y respuestas de nvm
Se han recibido 1 faqs en nvm