¡Astro 5.4 trae optimización de imágenes remotas en Markdown, seguridad mejorada para los servidores de dev y preview, soporte de RegExp para exclusiones de Vercel ISR, y más!
🖼️ Tenemos un lanzamiento perfecto para ti con estas mejoras en Astro:
- Optimización de imágenes remotas en Markdown
- Soporte experimental de imágenes responsive en Markdown
- Allowlist de hosts para servidores de dev y preview
- Soporte de RegExp para exclusiones de Vercel ISR
- Nuevos helpers de configuración y opciones de build
Para actualizar un proyecto existente, usa la herramienta CLI automatizada @astrojs/upgrade. Alternativamente, actualiza manualmente ejecutando el comando de actualización para tu gestor de paquetes:
# Recommended:npx @astrojs/upgrade
# Manual:npm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestOptimización de imágenes remotas en Markdown
El servicio de imágenes de Astro ya manejaba la optimización de tus imágenes Markdown locales. ¡Ahora, puede hacer lo mismo para imágenes remotas también!
Anteriormente, cuando usabas sintaxis estándar de Markdown como  con imágenes remotas, Astro simplemente las pasaba sin ningún procesamiento. Esto era diferente a cómo funcionaba el componente Image, y significaba que no podías aprovechar la optimización de imágenes de Astro para imágenes almacenadas en un CMS u otras ubicaciones externas.
Con Astro 5.4, el servicio de imágenes ahora procesa y optimiza automáticamente las imágenes remotas en tus archivos Markdown y MDX también. Obtendrás todos los beneficios de la optimización de imágenes de Astro sin cambiar cómo escribes tu contenido.
Esta característica está habilitada por defecto–cualquier imagen remota existente en tus archivos Markdown y MDX se optimizará automáticamente. Si necesitas optar por no participar para imágenes específicas, puedes usar tags HTML <img> en lugar de sintaxis Markdown.
Ten en cuenta que las imágenes en tu carpeta public/ todavía nunca se procesan, siguiendo el comportamiento normal de Astro.
¡Gracias a PolyWolf por esta gran contribución!
Soporte experimental de imágenes responsive en Markdown
Anteriormente la característica experimental de imágenes responsive solo tenía soporte completo en los componentes Image y Picture. ¡En Astro 5.4, hemos extendido este soporte a archivos Markdown y MDX también!
Al usar la opción experimental.responsiveImages en tu configuración de Astro, Astro ahora generará imágenes responsive para las imágenes en tus archivos Markdown y MDX, aplicando las propiedades y estilos correctos para hacerlas responsive.
¡Gracias de nuevo a PolyWolf que también contribuyó esta característica!
Allowlist de hosts para servidores de dev y preview
Para mayor seguridad, Astro 5.4 introduce una nueva opción para restringir a qué hostnames responderán tus servidores de dev y preview.
La nueva opción de configuración server.allowedHosts te permite especificar una lista de hostnames permitidos. Esto comprobará el header Host de las peticiones entrantes y solo responderá a las peticiones con un hostname coincidente. Esto ayuda a prevenir ataques de DNS rebinding como GHSA-vg6x-rcgg-rjx6.
Puedes configurar esto en tu astro.config.mjs:
import {defineConfig} from "astro/config";
export default defineConfig({ server: { allowedHosts: ['hello.world.example.local', 'hello.example.local'] }})O directamente en el CLI:
astro dev --allowed-hosts=hello.world.example.local,hello.example.localastro preview --allowed-hosts=hello.world.example.local,hello.example.localSolo deberías usar esto con dominios que controles. Permitir dominios de terceros puede exponerte a riesgos de seguridad.
Si necesitas más detalles sobre cómo funciona debajo del capó, consulta la documentación de Vite, ya que la implementación es la misma.
Soporte de RegExp para exclusiones de Vercel ISR
Si estás usando Incremental Static Regeneration (ISR) con el adaptador de Vercel, ahora tienes más flexibilidad para definir qué rutas deben excluirse del caché ISR.
Anteriormente, tenías que listar explícitamente cada ruta a excluir en la opción isr.exclude. Para sitios con muchas rutas que requieren server-side rendering, esto podía volverse difícil de manejar:
import vercel from '@astrojs/vercel';
export default defineConfig({ output: 'server', adapter: vercel({ isr: { exclude: [ '/api/users', '/api/posts', '/api/comments', // ... many more API routes ] } })});Ahora puedes usar expresiones regulares para crear exclusiones potentes basadas en patrones:
import vercel from '@astrojs/vercel';
export default defineConfig({ output: 'server', adapter: vercel({ isr: { exclude: [ '/preview', // Specific route '/auth/[page]', // Dynamic route /^\/api\/.+/, // RegExp: all routes starting with /api/ ] } })});Esto hace mucho más fácil gestionar las exclusiones ISR a escala, especialmente para sitios con muchas API routes o páginas dinámicas.
¡Gracias a Slawek Kolodziej por esta contribución!
Nuevos helpers de configuración y opciones de build
Astro 5.4 introduce nuevas APIs que hacen más fácil trabajar con Astro programáticamente, particularmente para escenarios de testing y scripting.
Helpers de configuración
Dos nuevas funciones helper se exportan ahora desde astro/config:
mergeConfig: Te permite mezclar configuraciones de Astro parcialmente definidas sobre una configuración base, siguiendo las mismas reglas que la funciónupdateConfigdisponible para integraciones.validateConfig: Valida que un valor dado sea una configuración válida de Astro y rellena los valores por defecto según sea necesario.
Estos helpers son particularmente útiles para autores de integraciones y para desarrolladores que escriben scripts que necesitan manipular configuraciones de Astro programáticamente.
Opciones de build programáticas
La API build ahora acepta un segundo argumento opcional BuildOptions con dos opciones:
devOutput: Cuando se establece atrue, genera una compilación basada en desarrollo similar al código transformado enastro dev. Por defecto esfalse.teardownCompiler: Controla si se debe hacer teardown de la instancia WASM del compiler después de la compilación. Por defecto estrue.
Estas opciones proporcionan más control al ejecutar compilaciones de Astro programáticamente, especialmente para escenarios de testing o pipelines de build personalizados.
Correcciones de bugs
Como siempre, hemos estado trabajando duro en corregir problemas desde el lanzamiento 5.3. Consulta el changelog para todos los detalles.
Gracias
Gracias a todos los que contribuyeron a este lanzamiento, incluyendo Emanuele Stoppa, Luiz Ferraz, Sarah Rainsberger, HiDeoo, Yan Thomas, PolyWolf, Slawek Kolodziej, y muchos más.
¡Esperamos ver qué construís con Astro 5.4! Si tienes preguntas, comentarios, o solo quieres decir hola, pásate por el Astro Discord.
