nvm

> Temas > nvm
Editar

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:

nvm

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

Editar

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

Editar

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

Editar

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.

Editar

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".

Editar

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

Editar

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.

Editar

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

Editar

¿Quieres añadir algo sobre nvm?

Crea artículos, recursos o comparte información sobre nvm

Crear un bloque

Temas relacionados

Preguntas y respuestas de nvm

Se han recibido 1 faqs en nvm

Hacer una pregunta