Tutorial

Node.js 20 en fin de vida: migrar su VPS

Desarrollo5 min de lectura5 pasos

Desde el 30 de abril de 2026, Node.js 20 ya no recibe ningún parche, ni siquiera de seguridad. Sin embargo, muchos VPS y proyectos de agencia siguen funcionando sobre esa línea: la aplicación responde, las pruebas pasan y nada indica que el runtime está congelado. Le explicamos cómo saber qué ejecuta realmente, elegir la versión de destino y llevar a cabo el cambio sin interrupción.

Contenido· Qué cambia realmente el fin de vida de Node.js 201/6
  1. 01Qué cambia realmente el fin de vida de Node.js 20
  2. 02Lo que cuesta un runtime congelado
  3. 03Saber qué ejecutan realmente sus servidores
  4. 04Migrar sin romper la producción
  5. 05Fijar la versión, no solo migrarla
  6. 06Convertir el fin de vida en una cita, no en una sorpresa

Qué cambia realmente el fin de vida de Node.js 20

Node.js sigue un ciclo público: una línea par entra en Active LTS en octubre, pasa a Maintenance LTS un año más tarde y después se detiene. Node.js 20 entró en Maintenance LTS el 22 de octubre de 2024 y alcanzó su fin de vida el 30 de abril de 2026. Desde entonces, un fallo del runtime ya no se corrige aguas arriba: ni en el motor V8, ni en la biblioteca TLS integrada, ni en el analizador HTTP. El código sigue funcionando, pero cada vulnerabilidad publicada permanece abierta.

Lo que cuesta un runtime congelado

  • Fallos sin corregir — las vulnerabilidades publicadas después del 30 de abril de 2026 ya no recibirán parche aguas arriba; solo una subida de versión las cierra.
  • Paquetes que se descuelgan — los mantenedores elevan el campo engines de su package.json hacia las líneas todavía soportadas; una instalación nueva acaba fallando o dejándole anclado en versiones antiguas.
  • Imágenes base inmóviles — una imagen node:20 ya no recibe parches, ni para el runtime ni para los paquetes de sistema que hay debajo; su análisis de vulnerabilidades lo señala en cada build.
  • Auditorías que se atascan — un runtime en fin de vida es un riesgo no aceptado en las revisiones de seguridad y en los cuestionarios de proveedores.
  • Migración de urgencia — cuanto más crece la brecha, más cara sale la transición; llevarla a cabo hoy es un proyecto planificado, sufrirla tras un incidente ya no lo es.

Saber qué ejecutan realmente sus servidores

node -v en un shell solo cuenta una parte de la historia: el binario de su sesión no es necesariamente el que sirve la producción. Un gestor de procesos conserva la versión con la que arrancó, nvm instala varias por usuario, un Dockerfile fija la suya en un FROM node:20. Inventaríe cada fuente: pm2 jsonlist para los procesos vivos, un grep -r 'FROM node' sobre sus Dockerfiles, el campo engines de cada package.json y la versión fijada en la CI o en sus runtimes gestionados.

Migrar sin romper la producción

  1. Levantar el inventario antes de tocar nada más

    Enumere, aplicación por aplicación: la versión realmente ejecutada, el gestor de procesos, la imagen base y las dependencias nativas — node-gyp, sharp, better-sqlite3. Son ellas las que fijan el calendario, no su código: un módulo compilado sin binario listo para la nueva línea bloquea toda la transición.

  2. Elegir la versión de destino

    Node.js 24 está en Active LTS desde el 28 de octubre de 2025 y su fin de vida está fijado al 30 de abril de 2028: es el destino por defecto. Node.js 22, en Maintenance LTS desde el 21 de octubre de 2025, tiene soporte hasta el 30 de abril de 2027 — un escalón aceptable si una dependencia nativa aún no sigue el ritmo, nunca un destino. Node.js 26 no entra en LTS hasta el 28 de octubre de 2026: hoy, no en producción.

  3. Reproducir la suite de pruebas en la versión de destino

    Añada la versión de destino a la matriz de su CI antes de retirar la antigua: ambas deben ponerse en verde al mismo tiempo. Reinstale en frío (rm -rf node_modules y después npm ci) para forzar la recompilación de los módulos nativos: ahí es donde aparecen las rupturas, rara vez en las pruebas unitarias. Lea los avisos de obsolescencia — son los errores de la línea siguiente.

  4. Cambiar un servicio cada vez

    nvm install 24 instala la nueva línea junto a la antigua sin retirarla. Reinicie después el daemon del gestor de procesos (pm2 update) y vuelva a crear el servicio (pm2 delete y luego pm2 start): un simple pm2 restart conserva el intérprete registrado. Regenere el script de arranque (pm2 startup, pm2 save) y compruebe con pm2 jsonlist que la versión reportada ha cambiado.

  5. Vigilar y después limpiar

    Mantenga los logs de error y la curva de memoria a la vista durante 48 horas: un cambio de línea de V8 desplaza el perfil del recolector de basura más a menudo de lo que rompe una API. Una vez confirmada la transición, desinstale Node.js 20 para que ningún despliegue lo vuelva a invocar por accidente. Si prefiere partir de un servidor limpio en lugar de migrar en sitio, nuestra guía deployer-nodejs-vps recorre la cadena completa.

Fijar la versión, no solo migrarla

Una subida de runtime es el buen momento para apretar lo que la rodea. Fije la versión de destino en un .nvmrc versionado junto al código y alinee el campo engines de su package.json: el servidor, la CI y los puestos de desarrollo dejan de divergir en silencio — es esa deriva la que permite que un runtime en fin de vida sobreviva a su propia migración. Ejecute la aplicación con un usuario dedicado, sin permiso de escritura sobre su carpeta de código.

Convertir el fin de vida en una cita, no en una sorpresa

El calendario de Node.js es público: una línea par pasa a LTS en octubre y se detiene treinta meses más tarde, siempre un 30 de abril. Node.js 22 se detendrá el 30 de abril de 2027 y Node.js 24 el 30 de abril de 2028: ambas fechas pueden entrar hoy mismo en su calendario de explotación. Recurrente y presupuestada, la subida de versión ocupa unos pocos días al año; sufrida con urgencia, cuesta mucho más.

Un VPS donde usted elige la versión que se ejecuta

ServOrbit pone a su disposición VPS Cloud donde usted instala y fija la línea de Node.js que prefiera, migra servicio por servicio y mantiene dos versiones en paralelo durante todo el cambio.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva