Skip to content

🟢 nvm y versiones de Node — Angular

⬅️ Volver al índice de comandos

🟢 nvm (Node Version Manager)

Gestiona varias versiones de Node en la misma máquina. Angular es exigente con la versión de Node, así que conviene poder cambiar de versión con facilidad.

ComandoQué haceEjemplo
nvm -vMuestra la versión instalada de nvmnvm -v
nvm lsLista las versiones de Node instaladas localmentenvm ls
nvm ls-remoteLista las versiones de Node disponibles para instalarnvm ls-remote --lts
nvm install <ver>Descarga e instala una versión de Nodenvm install 20
nvm install --ltsInstala la última versión LTS (recomendada)nvm install --lts
nvm use <ver>Cambia la versión de Node activa en la terminalnvm use 20
nvm alias default <ver>Fija la versión por defecto al abrir la terminalnvm alias default 20
nvm currentMuestra la versión de Node activa ahora mismonvm current
nvm which <ver>Muestra la ruta de instalación de una versiónnvm which 20
nvm uninstall <ver>Desinstala una versión de Nodenvm uninstall 18

⚠️ Ojo: nvm -list no existe; el correcto es nvm ls. Si escribes un comando inválido, nvm imprime toda la ayuda (--help).

🔍 Cómo leer la salida de nvm ls

       v20.19.4
        v24.0.0
->       system            ← la flecha -> marca la versión ACTIVA ahora
default -> 24 (-> v24.18.0)  ← versión por defecto al abrir terminal
node -> stable (-> v24.0.0)  ← alias "node" = última estable instalada
lts/iron -> v20.20.2 (-> N/A) ← (-> N/A) = NO tienes esa versión exacta
lts/jod  -> v22.23.1          ← sin (-> N/A) = SÍ la tienes instalada
  • -> (flecha al margen izquierdo) = la versión que estás usando ahora mismo. Si apunta a system, NO estás usando una versión de nvm sino el Node del sistema.
  • (-> N/A) junto a un lts/* = ese alias apunta a una versión que no tienes instalada.
  • Cada lts/<nombre> es una línea LTS de Node con nombre de elemento químico (gallium = 16, hydrogen = 18, iron = 20, jod = 22, krypton = 24).

📝 Notas de comportamiento

  • Al hacer nvm install <ver>, nvm activa esa versión automáticamente (verás Now using node vX...).
  • nvm install --lts instala la última LTS disponible (no la que ya tengas).
  • Si instalas algo ya instalado: vX.Y.Z is already installed y solo la activa.
  • nvm use dura solo para la terminal actual; nvm alias default la hace permanente para terminales nuevas.

🔢 Versiones de Node: PARES (LTS) vs IMPARES

⚠️ Regla de oro: usa versiones PARES de Node (18, 20, 22, 24…) para tus proyectos. Las IMPARES (19, 21, 23, 25…) son experimentales.

  • Versiones PARES → llegan a ser LTS (Long Term Support = soporte largo). Son estables y recomendadas para producción.
  • Versiones IMPARESnunca entran en LTS; sirven para probar lo nuevo. No se recomiendan para producción.

Cuando Angular detecta una versión impar, te avisa:

Node.js version v25.0.0 detected.
Odd numbered Node.js versions will not enter LTS status
and should not be used for production.

💡 No es un error que bloquee (puedes continuar), pero es señal de que conviene cambiar a una versión par con nvm install 22 / nvm use 22.

🧪 Tip de entrevista: "¿Por qué Node 20 o 22 y no 21?" → porque las impares no son LTS.

🔧 Verificación rápida

ComandoQué haceEjemplo
node -vMuestra la versión de Node activanode -v
npm -vMuestra la versión de npmnpm -v
nvm currentVersión de Node que nvm cree que está activanvm current
which nodeRuta del node que se ejecuta de verdadwhich node
type -a nodeMuestra todos los node del PATH (para ver duplicados)type -a node
echo $PATHMuestra el orden de búsqueda de ejecutablesecho $PATH

⚠️ Si node -v y nvm current NO coinciden, hay otro Node "pisando" al de nvm en el PATH. Diagnostícalo con which node y type -a node. → ver ../../06-Errores/.