NVM: El Secreto para Cambiar Versiones de Node.js

NVM es una herramienta de línea de comandos diseñada para gestionar múltiples versiones de Node.js en tu sistema. Permite a los desarrolladores instalar, desinstalar y, lo más importante, cambiar fácilmente entre diferentes versiones de Node.js en un sistema por sesión de shell (terminal). También te dejo nuestra blog para que lo puedas visitar.

  • Evita Conflictos: Diferentes proyectos a menudo requieren versiones específicas de Node.js. Usar NVM te asegura que cada proyecto esté ejecutándose con la versión correcta, evitando errores de compatibilidad.
  • Facilita las Pruebas: Permite probar rápidamente tus aplicaciones con versiones más nuevas o antiguas de Node.js para verificar la compatibilidad o prepararte para una actualización.
  • Versiones de Paquetes Globales Aisladas: Cada versión de Node.js gestionada por NVM tiene su propio conjunto de paquetes globales de npm, lo que previene conflictos entre ellos.
  • Simpleza: Simplifica el proceso de instalación y cambio de versiones en comparación con la instalación manual o usando gestores de paquetes del sistema.

Aquí están los comandos principales y cómo usarlos (el hack que mencionas se relaciona con el archivo .nvmrc):

ComandoDescripciónEjemplo de Uso
nvm install <version>Instala una versión específica de Node.js. Puedes usar alias como node (la última versión) o lts (la última versión de Soporte a Largo Plazo).nvm install 20.11.0
nvm use <version>Cambia a una versión de Node.js instalada en la sesión de terminal actual. (El «hack» que mencionas).nvm use 18.19.1
nvm lsLista todas las versiones de Node.js instaladas en tu sistema.nvm ls
nvm ls-remoteMuestra una lista de todas las versiones de Node.js disponibles para instalar.nvm ls-remote
nvm currentMuestra la versión de Node.js actualmente en uso.nvm current
nvm alias default <version>Establece una versión de Node.js como la versión predeterminada para nuevas terminales.nvm alias default 20.11.0
nvm uninstall <version>Desinstala una versión específica de Node.js.nvm uninstall 14.17.6

Exportar a Hojas de cálculo

Muchos desarrolladores usan un archivo llamado .nvmrc en la raíz de su proyecto. Este archivo de texto simple contiene solo el número de versión de Node.js que requiere el proyecto (por ejemplo: 16.20.2 o lts).

Cuando ejecutas el comando nvm use (sin especificar una versión) dentro de un directorio que contiene un archivo .nvmrc, NVM automáticamente lee el archivo y cambia a esa versión.

ComandoDescripciónEjemplo
Crear .nvmrcCrea un archivo en la raíz del proyecto para fijar la versión.echo "18.19.1" > .nvmrc
nvm useCambia a la versión especificada en el archivo .nvmrc del directorio.(Dentro del proyecto): nvm use

Exportar a Hojas de cálculo

La necesidad de NVM surge de la naturaleza dinámica de Node.js.

  1. Compatibilidad de Proyectos: Los proyectos de software viven mucho tiempo, y las dependencias (librerías y paquetes) evolucionan. Un proyecto antiguo puede requerir Node.js v14.x, mientras que uno nuevo usa la versión v20.x. Si solo tuvieras una versión global, intentarías ejecutar el proyecto antiguo con la versión nueva, lo que casi siempre resultaría en errores de compatibilidad.
  2. Ciclo de Vida de Soporte (LTS): Node.js usa un modelo de Soporte a Largo Plazo (LTS). Es común necesitar cambiar entre la versión LTS activa (para producción estable) y la versión actual (para probar nuevas características). NVM lo simplifica con alias como nvm install lts o nvm use lts.
  3. Ambientes Aislados: Cuando instalas paquetes globalmente con npm install -g, estos se instalan dentro del directorio de la versión de Node.js que estás usando. Si cambias de versión con NVM, esos paquetes globales no interfieren con la nueva versión. Esto mantiene limpios y aislados los ambientes de desarrollo de cada versión.

El comando nvm use es el corazón de la gestión de versiones, y su uso con el archivo .nvmrc es la clave para la automatización en el desarrollo colaborativo.

  1. Creación: En la raíz de tu proyecto, creas un archivo de texto llamado .nvmrc con un número de versión adentro (ej: 18.19.1).
  2. Colaboración: Cuando un nuevo compañero de equipo clona tu proyecto, simplemente ejecuta nvm install y luego nvm use. NVM lee el archivo y garantiza que todos los desarrolladores estén usando exactamente la misma versión para ese proyecto. Esto elimina el famoso error: «Funciona en mi máquina».
  3. Automatización (Shells): Muchas configuraciones de shell (como Zsh o Bash) pueden configurarse para ejecutar automáticamente nvm use cada vez que ingresas a un directorio que contenga un archivo .nvmrc.

Puedes ser flexible con la versión:

Contenido en .nvmrcVersión que NVM selecciona
20.11.0Exactamente la versión 20.11.0.
18La última versión de la serie 18.x.x instalada.
lts/ironLa versión LTS con nombre de código «Iron» (una forma de evitar el número exacto).
ltsLa versión de Soporte a Largo Plazo más reciente.

Exportar a Hojas de cálculo


NVM no solo sirve para cambiar versiones, también ofrece utilidades:

ComandoDescripciónEjemplo
nvm alias <name> <version>Crea un alias personalizado para una versión. Útil para entornos específicos.nvm alias dev-stack 14.17.6
nvm use systemCambia a la versión de Node.js instalada por defecto en tu sistema (fuera de NVM, si existe).nvm use system
nvm reinstall-packages <version>Reinstala los paquetes globales de una versión anterior en la versión actual.nvm reinstall-packages 18
nvm run <version> <file>Ejecuta un archivo de Node.js con una versión específica sin cambiar la versión actual de tu shell.nvm run 14 server.js
nvm install nodeInstala la última versión estable de Node.js.nvm install node

Esta es la forma más fluida de asegurarte de que siempre estás usando la versión correcta al cambiar de proyecto.

El siguiente video explica cómo utilizar NVM para gestionar versiones de Node.js, lo cual incluye ejemplos de los comandos mencionados visitar página.

Scroll al inicio