Vercel ha lanzado la versión 12.2 de su framework basado en React Next.js, con características clave ahora estables y nuevas APIs experimentales.
Next.js es de código abierto y puede ser autoalojado o desplegado en la red de Vercel (alojada en AWS). El pasado mes de octubre, el equipo adelantó una característica llamada Middleware, explicando que “Middleware le permite utilizar el código sobre la configuración“.
Y añadía: “Esto te da una flexibilidad total en Next.js porque puedes ejecutar código antes de que se complete una solicitud”, invirtiendo la suposición común de que la configuración es más eficiente que el código.
El middleware se ejecuta en Edge Runtime, un tiempo de ejecución ligero basado en el motor V8 que utiliza una API recortada y sólo funciona con módulos ES (ECMAScript), no con las API nativas de Node.js. El arquitecto jefe de Vercel, Malte Ubl, dijo en Hacker News que Edge Functions tiene “un tiempo de arranque tan rápido que si se produce un arranque en frío sigue siendo lo suficientemente rápido desde una percepción humana (a menudo <30ms atribuibles al arranque)”. La contrapartida, dijo, es el conjunto de APIs restringidas, el menor tamaño máximo de los binarios, la menor cuota de CPU y el menor uso máximo de RAM.
Middleware ya está disponible de forma general, y el director general de Vercel, Guillermo Rauch, dijo ayer que “casi la mitad de nuestros clientes empresariales” habían utilizado la versión beta.
La versión GA de Middleware presenta cambios importantes con respecto a la beta. Las funciones de Middleware ya no pueden anidarse, sino que ahora deben estar en un único Middleware raíz, un archivo de código escrito en TypeScript o JavaScript. Los documentos dicen que esto es más rápido y más barato. Sigue siendo posible ejecutar código basado en las rutas de las solicitudes u otras condiciones. Otro cambio es que el Middleware ya no puede generar un cuerpo de respuesta, sino que debe utilizar la reescritura o la redirección para modificar una solicitud entrante. También hay cambios en la API de cookies.
Otra característica ahora declarada estable es la regeneración estática incremental bajo demanda, una característica añadida en beta en Next.js 12.1. Incremental significa que la regeneración de páginas estáticas puede hacerse página por página, sin necesidad de reconstruir un sitio entero. Bajo demanda significa que se puede llamar a una API de revalidación cuando el contenido cambia.
La novedad de esta versión son las rutas Edge API, para construir APIs utilizando el mismo Next.js Edge Runtime que utiliza Middleware. Las rutas Edge API están en fase beta. Otra nueva característica, designada como experimental, es una opción para utilizar el renderizado del servidor Edge con el Edge Runtime en lugar de Node.js para el renderizado del lado del servidor de las páginas. La documentación afirma que el Edge Runtime tiene “menor latencia así como mejor escalabilidad”.
SWC es una herramienta para la compilación y agrupación de JavaScript o TypeScript, escrita en Rust, y que se afirma [https://swc.rs/ ] que es 20 veces más rápida que Babel en un solo hilo, o 70 veces más rápida en cuatro núcleos. SWC fue desarrollado por DongYoon Kang, que fue contratado por Vercel en agosto del año pasado. El rendimiento de la compilación es fundamental para Next.js debido a la necesidad de una rápida regeneración del lado del servidor. La novedad de Next.js 12.2 es la compatibilidad experimental con plugins escritos en WebAssembly que personalizan la transformación de SWC.
Una descripción completa de las novedades de 12.2 puede encontrarse aquí.
Hay ecos aquí del trabajo realizado por el competidor de Vercel, Netlify, y por el equipo de Deno, construyendo una alternativa a Node.js basada en TypeScript y módulos ES estándar de la web.
Se trata de un enfoque moderno de desarrollo web sin servidor: empujar el código, dejar que el proveedor se preocupe de dónde se ejecuta, y utilizar las API estándar de la web. La escalabilidad es más fácil y hay beneficios de seguridad, pero como señalan los comentaristas de Hacker News, no todo el código es abierto y el alojamiento puede ser caro.
Añadir comentario