Novedades de Astro 7.3: --ignore-lock en preview, logger para extensiones y finalize() en Cloudflare
Astro 7.3 permite correr varios servidores de preview a la vez, pasa el logger de Astro a los servicios de imagen y a los proveedores de caché, y suma el helper finalize() en @astrojs/cloudflare. Te explico cada cambio con sus ejemplos.
- Javi Mata
- 4 min de lectura
Tabla de contenido
Astro 7.3 se publicó el 3 de septiembre de 2026. Es una versión pequeña y muy enfocada en quienes extienden Astro o lo automatizan: trae tres cambios concretos, que repaso a continuación. Este blog está hecho con Astro, así que me interesa seguir de cerca cada versión.
Todo lo que cuento sale del anuncio oficial; los ejemplos de código son los que aparecen ahí.
Qué trae Astro 7.3
- El flag
--ignore-lockenastro preview, para correr más de un servidor de preview a la vez. - Un
loggerque Astro pasa a los servicios de imagen personalizados y a los proveedores de caché. - Un helper
finalize()en@astrojs/cloudflarepara entrypoints de worker personalizados.
Cómo actualizar
El anuncio recomienda la herramienta automática:
npx @astrojs/upgrade
O, de forma manual, con el comando de tu gestor de paquetes:
npm install astro@latest
pnpm upgrade astro --latest
yarn upgrade astro --latest
Varios servidores de preview a la vez
La historia tiene tres capítulos, según el anuncio:
- Astro 7.1 añadió
--ignore-lockaastro devpara poder correr más de un servidor de desarrollo a la vez, saltándose el archivo de bloqueo (lockfile) que evita que los agentes de IA levanten servidores duplicados. - Astro 7.2 añadió ese mismo bloqueo a
astro preview, pero sin la misma salida de escape. - Astro 7.3 cierra esa brecha:
astro preview --ignore-lock
Hay casos en que quieres varios servidores de desarrollo o de preview a la vez. El ejemplo que da el anuncio es cuando haces pruebas con Playwright: ahora puedes pasar --ignore-lock para que corran simultáneamente.
Un detalle importante: estas instancias corren de forma independiente, así que están pensadas para servidores rápidos y puntuales, no para los que gestionas con astro preview stop o status.
Un logger para servicios de imagen y proveedores de caché
Astro permite un logger personalizado para dirigir su salida a tu propio sistema de logs. El problema hasta ahora: los servicios de imagen y los proveedores de caché personalizados no podían aprovecharlo. Si querían avisar de algo, como un formato de imagen no soportado o una entrada de caché omitida, su única opción era console.warn(), que ignora por completo el nivel de log configurado, el destino o el flag --silent.
Astro 7.3 pasa un logger a ambos puntos de extensión.
Servicios de imagen: lo reciben como argumento de sus hooks.
import type { LocalImageService } from 'astro';
const service: LocalImageService = {
// ...
async transform(inputBuffer, transform, imageConfig, logger) {
logger.warn(`Could not optimize "${transform.src}". Passing it through unchanged.`);
return { data: inputBuffer, format: 'png' };
},
};
Proveedores de caché: lo reciben en el contexto que se pasa a onRequest().
import type { CacheProvider } from 'astro';
const provider: CacheProvider = {
name: 'my-cache',
async onRequest({ request, url, logger }, next) {
logger.warn(`Skipping cache for ${url.pathname} because the response sets a cookie.`);
return next();
},
// ...
};
Además, según el anuncio, el servicio de imagen Sharp integrado y el proveedor memoryCache() de Astro también se actualizaron para usar el logger, de modo que sus avisos se comportan igual que el resto de la salida de Astro.
Si no escribes servicios de imagen ni proveedores de caché propios, este cambio no te exige nada.
El helper finalize() para Cloudflare
Si tienes un entrypoint de worker personalizado en Cloudflare, @astrojs/cloudflare ahora incluye un helper finalize() que aplica las cookies y los valores de caché de CDN por defecto de Cloudflare a la respuesta que sale de un pipeline de astro/fetch:
// src/worker.ts
import { astro, FetchState } from 'astro/fetch';
import { cf, finalize } from '@astrojs/cloudflare/fetch';
export default {
async fetch(request: Request, env: Env, context: ExecutionContext) {
const state = new FetchState(request);
const asset = await cf(state, env, context);
if (asset) return asset;
return finalize(state, await astro(state));
},
};
Si usas Hono, el middleware @astrojs/cloudflare/hono aplica esas cabeceras automáticamente, así que no hay que llamar nada extra.
Otras mejoras
El anuncio menciona además correcciones y mejoras menores. Para verlas completas, consulta el changelog oficial.
Mi opinión
Mi lectura, que es opinión mía y no del anuncio: 7.3 no cambia cómo construyes un sitio con Astro, pero ordena detalles que importan cuando automatizas. Si trabajas con agentes de IA o con pruebas end-to-end, --ignore-lock te evita pelearte con el bloqueo. Y si publicas en Cloudflare con un worker propio, finalize() te ahorra aplicar esas cabeceras a mano.
Fuentes
Etiquetas:
Compartir: