⚽ Astro 5.12 la mete en el fondo de la red, con una experiencia de desarrollo de Netlify mejorada, soporte TOML en content loaders, ¡y más!
La alineación inicial incluye:
- Soporte TOML para content loaders
- Nueva experiencia de desarrollo en Netlify
- Valores de entorno raw experimentales
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 --latestSoporte TOML para content loaders
Astro 5.12 trae soporte nativo para archivos TOML en colecciones de contenido. Los file() y glob() content loaders de Astro ya te cubrían para archivos Markdown, JSON y YAML, y ahora también puedes usar archivos TOML.
No se necesita ninguna configuración para habilitar el soporte TOML: simplemente añade archivos .toml a una colección usando un loader integrado. Por ejemplo, si tienes un directorio de archivos TOML como este:
name = "Apollo"launch_date = "1969-07-16"crew = ["Neil Armstrong", "Buzz Aldrin", "Michael Collins"]Luego puedes crear una content collection que incluya los archivos TOML:
import { defineCollection, z } from 'astro:content';import { glob } from 'astro/loaders';
const spacecraft = defineCollection({ loader: glob({ pattern: '*.toml', base: './src/content/spacecraft' }), schema: z.object({ name: z.string(), launch_date: z.coerce().date(), crew: z.array(z.string()), }),});export const collections = { spacecraft };Luego puedes acceder al contenido TOML en tus componentes de Astro:
---import { getCollection } from 'astro:content';
const spacecraft = await getCollection('spacecraft');---
<ul> { spacecraft.map((item) => ( <li> <h2>{item.name}</h2> <p>Launch Date: {item.launch_date.toLocaleDateString()}</p> <p>Crew: {item.crew.join(', ')}</p> </li> )) }</ul>Nueva experiencia de desarrollo en Netlify
El adaptador de Netlify ahora está potenciado por el propio Vite plugin de Netlify durante el desarrollo, ¡trayendo toda la plataforma y primitivas de Netlify a tu entorno de desarrollo local!
El poder de Netlify en localhost
Hasta ahora, usar primitivas de Netlify con Astro durante el desarrollo local requería ejecutar tu proyecto a través del Netlify CLI. El nuevo adaptador integra estas capacidades directamente en el dev server de Astro.
Después de actualizar a la última versión del adaptador, ejecutar astro dev proporcionará:
- Un servidor local de Netlify Image CDN. Se usa para imágenes por defecto
- Un servidor local de Netlify Blobs. Se usa para sessions por defecto
- Redirects, rewrites y headers de tu configuración de Netlify
- El Netlify Edge Context en páginas bajo demanda
- Variables de entorno pobladas desde tu sitio de Netlify enlazado
Configurando las características de desarrollo
Junto con estas características viene una forma de configurarlas. El adaptador de Netlify ahora acepta una opción devFeatures en su configuración para personalizar qué características se habilitan durante el desarrollo. Actualmente, las características que puedes configurar son:
images: Habilita el Netlify Image CDN local para imágenes de Astro durante el desarrollo. Por defecto estrue.environmentVariables: Puebla automáticamente tu servidor de desarrollo con variables de entorno desde tu sitio de Netlify enlazado. Por defecto esfalse.
Pasas esto como una opción al adaptador de Netlify en tu archivo de configuración de Astro:
import { defineConfig } from 'astro/config'import netlify from '@astrojs/netlify'
export default defineConfig({ adapter: netlify({ devFeatures: { environmentVariables: true, images: false, }, })})¡Ahora puedes disfrutar del rico sabor de Netlify en tu propia casa!
Thanks to Eduardo Bouças and chee rabbits from Netlify who contributed this feature. Extra thanks to chee who contributed to this post too.Valores de entorno raw experimentales
Una nueva opción de configuración experimental te permite optar por no participar en la coerción automática de tipos de Astro para los valores de variables de entorno en import.meta.env. Por defecto, Astro convierte valores string como "true", "false", "1", y "0" a sus tipos respectivos, pero esto puede ser inesperado ya que las variables de entorno generalmente se espera que sean strings.
Esto alinea el comportamiento de Astro con el manejo de variables de entorno de Vite, y es probable que se convierta en el valor por defecto en un futuro lanzamiento major.
Para habilitar esta característica, añade el flag rawEnvValues a tu configuración de Astro:
export default defineConfig({ experimental: { rawEnvValues: true, },});Esta opción experimental solo afecta al objeto import.meta.env y no impacta el módulo astro:env que potencia las variables de entorno type-safe de Astro.
Gracias a Adam Langbert que contribuyó esta característica.
Correcciones de bugs
Como siempre, hemos estado trabajando duro en corregir problemas desde el lanzamiento 5.11. Consulta el changelog para todos los detalles.
Comunidad
El core team de Astro es:
Alexander Niebuhr , Ben Holmes , Caleb Jasik , Chris Swithinbank , Emanuele Stoppa , Erika , Florian Lefebvre , Fred Schott , Fuzzy , HiDeoo , Luiz Ferraz , Matt Kane , Matthew Phillips , Nate Moore , Reuben Tier , Sarah Rainsberger , and Yan Thomas
Gracias a todos los demás contribuidores que ayudaron a hacer posible Astro 5.12 con adiciones y mejoras de código y documentación, incluyendo:
Adam Langbert, Adam Matthiesen, Adit Sachde, Anmoti, Armand Philippot, chee, coderfee, Dixon Sean Low Yan Feng, Eduardo Bouças, Farhad, Junseong Park, Kenichi Nakamura, knj, liruifengv, Martin Trapp, Matthew Justice, Nin3, Paul Valladares, Philippe Serhal, Reuben Tier, Rezix, Robbie Wagner, ryu, Surya Kencana Putra, Thomas Bonnet, and Toby Nguyen


