Setup moderno de Node.js con nvm o fnm: maneja múltiples versiones sin dolor

DUGLAS MORENODUGLAS MORENO 👁 8

Introducción

Cuando trabajás en proyectos Node.js, es común encontrarte con situaciones en las que necesitás diferentes versiones de Node simultáneamente. Un proyecto puede requerir Node 14, mientras que otro funciona mejor con Node 20. Intentar instalar ambas versiones en el mismo sistema sin una herramienta adecuada puede generar conflictos, errores de EACCES o versiones globales de node desactualizadas.

En este artículo te guiaré paso a paso por el proceso de instalar un gestor de versiones moderno —ya sea nvm (Node Version Manager) o fnm (Fast Node Manager)— y aprenderás a instalar, cambiar y eliminar versiones de Node de forma sencilla. Los ejemplos están probados en macOS, Linux y Windows Subsystem for Linux (WSL), por lo que podés seguirlos sin importar tu stack.

Al finalizar, sabrás:

  • Cómo instalar nvm o fnm en tu sistema.
  • Cómo verificar las versiones disponibles.
  • Cómo instalar versiones específicas de Node y cambiar entre ellas.
  • Cómo eliminar versiones sobrantes.
  • Las mejores prácticas para evitar errores comunes y mantener un flujo de desarrollo limpio.

Visión general: nvm vs fnm

Característica nvm fnm
Creador Tim Oxley Schniz
Lanzamiento inicial 2015 2020
Velocidad de instalación Moderada (descarga de un script) Rápida (binario estático)
Compatibilidad con plataformas Unix‑like, Windows con WSL Windows, macOS, Linux (soporte completo)
Detección de shells Bash, Zsh, Fish (plugins) Bash, Zsh, Fish, PowerShell
Soporte para Yarn/NPM Funciona con corepack Funciona con corepack

Ambas herramientas resuelven el mismo problema, pero tienen filosofías diferentes. nvm es el clásico, con una comunidad grande y muchos recursos. fnm está diseñado para ser minimalista y rápido, con un binario estático que no necesita un script de instalación. La elección depende de tu shell favorito y de si necesitás soporte nativo para Windows. En esta guía, cubriré ambos para que elijas el que mejor se adapte a tus necesidades.

Instalación de nvm (Unix‑like)

1️⃣ Descargar e instalar el script

source <(curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh)

Salida esperada (la más relevante):

Descargando nvm.sh...
¡nvm se ha instalado! Ahora necesitas abrir un nuevo terminal o ejecutar `source ~/.bashrc` (o `~/.zshrc` si usas Zsh).

2️⃣ Verificar la instalación

command -v nvm

Si nvm está instalado correctamente, verás la ruta completa, por ejemplo:

/usr/local/bin/nvm

3️⃣ Usar nvm

Listar versiones disponibles

nvm list available

Salida esperada (extracto):

20.15.0
20.14.0
19.0.1
...

Instalar una versión específica (ejemplo: Node 20.15.0)

nvm install 20.15.0

Salida esperada (resumen):

Descargando node v20.15.0... 🎉
Construyendo... (puede tardar unos minutos)
¡Ahora Node v20.15.0 está instalado!

Establecer la versión actual

nvm use 20.15.0

Salida esperada:

Ahora usando node v20.15.0

Verificar la versión

node -v
npm -v

Salida esperada:

v20.15.0
10.5.0

4️⃣ Eliminar una versión (cuando ya no la necesitas)

nvm uninstall 20.15.0

Salida esperada:

Eliminada node v20.15.0 (hard‑link a ~/.nvm/versions/node/v20.15.0)

Instalación de fnm (multiplataforma)

1️⃣ Descargar el binario

curl -fsSL https://raw.githubusercontent.com/Schniz/fnm/master/conf/fnm-install | bash

Salida esperada (vista rápida):

Instalando fnm…
Ejecutable instalado en /usr/local/bin/fnm

2️⃣ Agregar fnm al PATH (una sola vez)

Si estás usando Bash:

echo 'eval "$(fnm env)"' >> ~/.bashrc

Si estás usando Zsh:

echo 'eval "$(fnm env)"' >> ~/.zshrc

Si usas PowerShell en Windows:

fnm env --use-on-cd | Out-String | Invoke-Expression

Después de agregar la línea, abre un nuevo terminal (o ejecuta source ~/.bashrc / source ~/.zshrc) para que el cambio surta efecto.

3️⃣ Verificar la instalación

fnm --version

Salida esperada:

1.36.2

4️⃣ Usar fnm

Listar versiones disponibles (fnm descarga una lista en caché)

fnm list

Salida esperada (extracto):

v18.17.1
v20.15.0
v21.0.0

Instalar una versión específica (ejemplo: Node 20.15.0)

fnm install 20.15.0

Salida esperada (rápido):

Instalando node v20.15.0
Ahora usando node v20.15.0

Cambiar la versión activa sin reinstalar

fnm use 20.15.0

Salida esperada:

Usando node v20.15.0

Verificar la versión global de Node y npm

node -v
npm -v

Salida esperada:

v20.15.0
10.5.0

5️⃣ Eliminar una versión

fnm uninstall 20.15.0

Salida esperada:

Desinstalando node v20.15.0

Comparación práctica: alternar entre Node 18 y Node 20

A continuación, se muestra un flujo de trabajo completo que demuestra cómo puedes saltar de una versión a otra en cuestión de segundos, usando tanto nvm como fnm.

Secuencia con nvm

# Instalar Node 18.17.1 (si aún no está instalada)
nvm install 18.17.1
nvm use 18.17.1
node -v
# => v18.17.1

# Cambiar a Node 20.15.0
nvm use 20.15.0
node -v
# => v20.15.0

# Volver a Node 18.17.1 sin reinstalar
nvm use 18.17.1
node -v
# => v18.17.1

Secuencia con fnm

# Instalar Node 20.15.0 (si aún no está instalada)
fnm install 20.15.0
fnm use 20.15.0
node -v
# => v20.15.0

# Cambiar a Node 18.17.1
fnm use 18.17.1
node -v
# => v18.17.1

# Listar versiones actualmente instaladas
fnm list
# => v18.17.1 (actual), v20.15.0 (cache)

Ambas secuencias demuestran que puedes mantener múltiples versiones de Node sin conflictos, y cambiar entre ellas con un solo comando.

Buenas prácticas y errores comunes

  • Abrir una nueva terminal (o sourcear el perfil) después de instalar el manager. De lo contrario, el shell no reconocerá las nuevas ubicaciones de binario.
  • Evitar sudo con nvm/fnm. Estas herramientas están diseñadas para funcionar en el espacio home del usuario. Usar sudo puede provocar permisos de archivos inconsistentes.
  • Verificar la versión del manager. Ejecuta nvm --version o fnm --version regularmente para asegurarte de que estás usando la última versión (nuevas versiones a menudo corrigen bugs de seguridad).
  • Comprobar corepack. Después de cambiar versiones, puedes necesitar habilitar corepack enable para Yarn o pnpm.
  • Limpiar versiones no utilizadas. Ejecuta nvm list --purge (nvm) o fnm list --purge (fnm) para eliminar versiones obsoletas que ocupan espacio en disco.
  • No mezclar gestores. Si ya usas nvm, desinstala nvm antes de instalar fnm, y viceversa, para evitar problemas de PATH.

Conclusión

Ahora tienes un flujo de trabajo completo para configurar un entorno Node.js moderno con nvm o fnm. Ambas herramientas te permiten instalar, cambiar y eliminar versiones de Node rápidamente, manteniendo tu sistema limpio y evitando conflictos de dependencias.

Elige el gestor que mejor se adapte a tu shell y preferencias: nvm si valoras la comunidad y los recursos, o fnm si prefieres una instalación rápida y un soporte multiplataforma sin complicaciones. Con las prácticas mencionadas, podrás alternar entre versiones de Node de forma confiable y mantener tu laptop libre de errores molestos.

Experimenta con diferentes versiones en tus proyectos, y recordá que un buen manejo de versiones es uno de los pilares de un flujo de desarrollo sólido.


¿Listo para potenciar tu flujo de trabajo? Instala tu gestor favorito hoy mismo y experimenta la libertad de múltiples versiones Node al instante.

Comentarios (0)

Sé el primero en comentar.

Dejá tu comentario