Setup moderno de Node.js con nvm o fnm: maneja múltiples versiones sin dolor
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 nvmSi nvm está instalado correctamente, verás la ruta completa, por ejemplo:
/usr/local/bin/nvm3️⃣ Usar nvm
Listar versiones disponibles
nvm list availableSalida 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.0Salida 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.0Salida esperada:
Ahora usando node v20.15.0Verificar la versión
node -v
npm -vSalida esperada:
v20.15.0
10.5.04️⃣ Eliminar una versión (cuando ya no la necesitas)
nvm uninstall 20.15.0Salida 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 | bashSalida esperada (vista rápida):
Instalando fnm…
Ejecutable instalado en /usr/local/bin/fnm2️⃣ Agregar fnm al PATH (una sola vez)
Si estás usando Bash:
echo 'eval "$(fnm env)"' >> ~/.bashrcSi estás usando Zsh:
echo 'eval "$(fnm env)"' >> ~/.zshrcSi usas PowerShell en Windows:
fnm env --use-on-cd | Out-String | Invoke-ExpressionDespué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 --versionSalida esperada:
1.36.24️⃣ Usar fnm
Listar versiones disponibles (fnm descarga una lista en caché)
fnm listSalida esperada (extracto):
v18.17.1
v20.15.0
v21.0.0Instalar una versión específica (ejemplo: Node 20.15.0)
fnm install 20.15.0Salida esperada (rápido):
Instalando node v20.15.0
Ahora usando node v20.15.0Cambiar la versión activa sin reinstalar
fnm use 20.15.0Salida esperada:
Usando node v20.15.0Verificar la versión global de Node y npm
node -v
npm -vSalida esperada:
v20.15.0
10.5.05️⃣ Eliminar una versión
fnm uninstall 20.15.0Salida esperada:
Desinstalando node v20.15.0Comparació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.1Secuencia 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
sudocon nvm/fnm. Estas herramientas están diseñadas para funcionar en el espacio home del usuario. Usarsudopuede provocar permisos de archivos inconsistentes. - Verificar la versión del manager. Ejecuta
nvm --versionofnm --versionregularmente 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 habilitarcorepack enablepara Yarn o pnpm. - Limpiar versiones no utilizadas. Ejecuta
nvm list --purge(nvm) ofnm 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.
DUGLAS MORENO
Comentarios (0)
Sé el primero en comentar.