Instalación de Node con NVM

Node Version Manager: Instalador de versiones de Node


La forma recomendada de instalar NodeJS/NPM es mediante NVM (Node Version Manager). Este sistema aporta una serie de ventajas:

  • Soluciona de forma transparente posibles problemas de permisos.
  • Permite al usuario cambiar de versión de Node rápida, cómoda y fácilmente.
  • Da mayor control al desarrollador si trabaja en múltiples proyectos.

Si tienes problemas de permisos al instalar paquetes con NPM, prueba a realizar la instalación con NVM que explicamos a continuación.

Instalación de NVM

La instalación de NVM (Node Version Manager) es muy sencilla. Simplemente tenemos que asegurarnos de tener instalado el comando curl o wget, y en caso contrario, instalarlos.

Una vez hecho, escribimos lo siguiente:

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

Esto descargará el script de instalación de NVM y lo ejecutará. Si todo ha ido bien, deberíamos poder ver la versión de NVM escribiendo el siguiente comando (es posible que necesites reiniciar la terminal para que lo detecte):

$ nvm --version

Instalación de Node con NVM

En este punto, tenemos instalado el gestor de versiones de node nvm, pero no tenemos instalado node. Con nvm podemos ver que versiones de node tenemos instaladas en la máquina actual:

$ nvm ls

->       system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
lts/* -> lts/gallium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.8 (-> N/A)
lts/fermium -> v14.18.2 (-> N/A)
lts/gallium -> v16.13.1 (-> N/A)

Observa que la mayoría de las versiones, probablemente te aparezcan en rojo. Eso significa que no tienes ninguna versión de Node instalada. Si aparece alguna en verde, significa que la tienes instalada. Por ejemplo, si system aparece en verde, significa que tienes node instalado en el sistema sin nvm.

El primer paso sería instalar la versión deseada de NodeJS. Puedes saber por que versión van simplemente accediendo a la página oficial de NodeJS. En dicha página aparecen dos canales, el primero, LTS, la versión estable recomendada para instalar, y el segundo, «Latest Features», la versión inestable, por si quieres probar las últimas novedades. Otra forma de ver las versiones disponibles, es ejecutar el comando nvm ls-remote.

Por ejemplo, instalemos la versión específica 16.12.1:

nvm install 16.13.1
Downloading and installing node v16.13.1...
Downloading https://nodejs.org/dist/v16.13.1/node-v16.13.1-linux-x64.tar.xz...
############################################################################### 100,0%
Computing checksum with sha256sum
Checksums matched!
Now using node v16.13.1 (npm v8.1.2)
Creating default alias: default -> 16.13.1 (-> v16.13.1)

Como se puede ver, se ha descargado e instalado node 16.13.1 y al final te confirma que se ha pasado a usar dicha versión y además se establece como la versión por defecto. Si hacemos nuevamente un nvm ls veremos (entre otras cosas) lo siguiente:

$ nvm ls

->     v16.13.1
default -> 16.13.1 (-> v16.13.1)
node -> stable (-> v16.13.1) (default)
stable -> 16.13 (-> v16.13.1) (default)
lts/* -> lts/gallium (-> v16.13.1)

Observa que te indica las versiones establecidas para utilizar, de la misma forma que si escribimos el comando node --version.

Usar versión temporalmente

Con el comando nvm install podemos instalar la versión que queramos de Node:

$ nvm install 17.3.0

Si no hemos instalado ninguna otra versión previamente, se establecerá como versión por defecto. Sin embargo, si hemos instalado alguna otra versión previamente, la versión instalada recientemente se usará sólo durante nuestra sesión actual, pero si cerramos nuestra terminal y la volvemos a abrir, volverá a la versión que teníamos antes.

Esto es lo que se conoce como «usar temporalmente una versión de Node», también podemos hacerlo de forma manual, basta con escribir:

$ nvm use 17.3.0
Now using node v17.3.0 (npm v8.3.0)

Recuerda que esa versión se usará durante la sesión actual. Una vez cerrada la terminal, nvm volverá a la versión por defecto.

Usar versión por defecto

Si lo que deseamos es establecer la nueva versión como versión por defecto de forma definitiva, tenemos que escribir lo siguiente:

$ nvm alias default 17.3.0
default -> 17.3.0 (-> v17.3.0)

De esta forma, vemos que se ha establecido la versión 17.3.0 como versión por defecto, y si cerramos la terminal y la volvemos a abrir, tendremos esa versión disponible.

Si por alguna razón no te interesa, o no quieres usar NVM, por aquí explico como instalarlo de la forma oficial, y también como corregir los problemas de permisos de NPM de forma manual. Si has instalado NVM, puedes saltarte esos dos artículos, ya que no los necesitas.

Alternativas a NVM

Si por alguna razón no te convence nvm, o buscas alternativas más veloces, que sepas que existen algunas herramientas alternativas a nvm. Las mostramos a continuación:

Nombre Descripción URL
fnm Gestor de versiones de Node rápido y simple creado en Rust. GitHub
volta Gestor de entornos de Node rápido y potente creado en Rust. GitHub
n Gestor minimalista e interactivo de versiones de Node. GitHub

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev