CarlosSeijas
← Volver a los blogs

Guía Completa de NVM: Domina Node Version Manager

Código
NVMNode.jsDesarrolloGestión de versiones
Guía Completa de NVM: Domina Node Version Manager

Mi salvavidas para manejar Node.js

¿Te has encontrado alguna vez en esa situación horrible donde tienes un proyecto que funciona con Node 16, otro que necesita Node 18, y acabas de empezar uno nuevo que requiere Node 20? Yo sí, y fue un infierno hasta que descubrí NVM.

Node Version Manager (NVM) es básicamente tu mejor amigo si trabajas con Node.js. Te permite tener múltiples versiones de Node instaladas en tu máquina y cambiar entre ellas con un simple comando. Ya no más desinstalar y reinstalar Node cada vez que necesitas trabajar en un proyecto diferente.

En mi experiencia, NVM me ha salvado la vida incontables veces. Puedes tener un proyecto legacy corriendo con Node 14 y al mismo tiempo estar experimentando con las últimas features de Node 21. Todo en la misma computadora, sin que uno afecte al otro.

Por qué NVM cambió mi forma de trabajar

Después de años usando NVM, puedo decirte que estos beneficios son reales:

Lo importante es que NVM te da esa tranquilidad de saber que cada proyecto va a funcionar como debe, sin sorpresas desagradables.

Instalando NVM: paso a paso

macOS y Linux (la forma fácil)

En Mac y Linux, la instalación es súper directa:

  1. Abre tu terminal

  2. Ejecuta el script mágico:

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

    O si prefieres wget:

    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    

    Ojo: siempre verifica que tengas la última versión en el repo oficial de NVM.

  3. Configura tu shell: NVM va a intentar agregar las líneas necesarias a tu archivo de configuración de shell. Si no lo hace automáticamente, o si el comando nvm no funciona después de reiniciar la terminal, agrega estas líneas manualmente a tu archivo de configuración (.bash_profile, .zshrc, etc.):

    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
    
  4. Reinicia tu terminal o ejecuta source ~/.bashrc para que los cambios tengan efecto

  5. Verifica que funcione:

    nvm --version
    

    Si ves un número de versión, ¡felicidades! Ya tienes NVM funcionando.

Windows (un poquito diferente)

En Windows, NVM es un proyecto separado llamado nvm-windows:

  1. Descarga el instalador: Ve a los releases de nvm-windows y baja el último nvm-setup.zip
  2. Instálalo: Descomprime y ejecuta nvm-setup.exe. Sigue el wizard como cualquier programa
  3. Pruébalo: Abre una nueva ventana de Command Prompt o PowerShell y ejecuta:
    nvm version
    

Comandos que uso todos los días

Estos son los comandos que realmente importan en el día a día:

Gestionando versiones como un pro

Instalando lo que necesitas

Para instalar una versión específica (digamos, la 20.5.0):

nvm install 20.5.0

Para la última versión LTS (mi recomendación para proyectos serios):

nvm install --lts

O por nombre de código:

nvm install lts/hydrogen # Node.js 18.x

Para la versión más nueva (experimental, úsala con cuidado):

nvm install node

Viendo qué tienes instalado

nvm ls te muestra todo lo que tienes:

-> v18.17.0 v20.5.0 system default -> 18.17.0 node -> stable (-> v20.11.1) (default) stable -> 20.11 (-> v20.11.1) (default) iojs -> N/A (default) lts/* -> lts/iron (-> 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.12 (-> N/A) lts/fermium -> v14.21.3 (-> N/A) lts/gallium -> v16.20.2 (-> N/A) lts/hydrogen -> v18.19.1 (-> N/A) lts/iron -> v20.11.1 (-> N/A)

La flecha -> te dice cuál está activa. system es la versión global si tenías Node instalado antes de NVM.

Cambiar versiones sin drama

Para la sesión actual

Si tienes instaladas varias versiones y quieres cambiar temporalmente:

nvm use 20.5.0

Esto solo afecta la terminal donde lo ejecutaste.

Para siempre (mi comando favorito)

Para que una versión específica se cargue en todas las nuevas terminales:

nvm alias default 20.5.0

Este comando me ha ahorrado tanto tiempo que ya perdí la cuenta.

Usando .nvmrc para proyectos específicos

Aquí viene uno de mis trucos favoritos. En cada proyecto, creo un archivo .nvmrc con la versión que necesito:

echo "18.17.0" > .nvmrc

O para una versión LTS:

echo "lts/hydrogen" > .nvmrc

Ahora, cada vez que entro al proyecto, solo ejecuto:

nvm use

NVM lee el archivo automáticamente y cambia a la versión correcta. Si no la tengo instalada, me pregunta si la quiero instalar. Súper conveniente.

También puedes hacer nvm install (sin argumentos) y va a instalar lo que diga el .nvmrc.

Cuando las cosas se rompen (y cómo arreglarlas)

"nvm: command not found"

Este es el clásico. Generalmente significa que NVM no se cargó bien:

  1. Revisa que las líneas de configuración estén en tu archivo de shell (.bashrc, .zshrc, etc.)
  2. Cierra y abre la terminal, o ejecuta source ~/.bashrc
  3. En Mac con zsh, asegúrate de que esté en .zshrc y no en .bash_profile

La versión no cambia entre terminales

Recuerda: nvm use solo afecta la terminal actual. Para un cambio persistente, usa nvm alias default.

Problemas con paquetes globales

Esto me costó entender al principio: cuando instalas un paquete global (npm install -g), solo está disponible para esa versión específica de Node. Si cambias de versión, tienes que reinstalarlo.

El truco es usar este comando cuando instalas una nueva versión:

nvm install v20.5.0 --reinstall-packages-from=v18.17.0

Esto copia todos tus paquetes globales de la versión antigua a la nueva.

Errores de permisos

Si ves errores de EACCES, NO uses sudo con NVM. NVM está diseñado para trabajar sin permisos de admin. Si tienes estos errores, probablemente hay un conflicto con una instalación previa de Node.

NVM vs otras herramientas

NVM vs. n

NVM vs. Volta

NVM vs. Docker

En mi experiencia, NVM sigue siendo mi favorito para desarrollo local por su simplicidad y confiabilidad.

Mi reflexión después de años usándolo

NVM es una de esas herramientas que una vez que la adoptas, no puedes vivir sin ella. Me ha salvado de innumerables problemas de compatibilidad y hace que trabajar con múltiples proyectos sea mucho más relajado.

Mis consejos basados en experiencia real:

  1. Instala NVM ya: No esperes más, lo vas a necesitar
  2. Usa .nvmrc siempre: Es un salvavidas para proyectos en equipo
  3. Define una versión LTS por defecto: nvm alias default lts/* te va a ahorrar dolores de cabeza
  4. Actualiza NVM regularmente: Siempre salen nuevas versiones de Node
  5. Limpia versiones viejas: nvm ls y nvm uninstall son tus amigos para mantener todo ordenado
  6. Nunca uses sudo: En serio, NVM no lo necesita
  7. Explora con nvm ls-remote: Te muestra todas las versiones disponibles

Lo importante es que NVM te da control total sobre tus entornos de Node.js. Una vez que lo domines, desarrollar se vuelve mucho más fluido y tendrás menos problemas raros relacionados con versiones.

¿Ya lo probaste? Si no, este es el momento perfecto para empezar. Tu futuro yo te lo va a agradecer.

Comentarios

Posts relacionados