⚽ Astro 5.12 забивает гол — улучшенный Netlify dev experience, поддержка TOML в content loaders и многое другое!
В стартовом составе:
Чтобы обновить существующий проект, используйте CLI @astrojs/upgrade. Или обновите вручную:
# Рекомендуется:npx @astrojs/upgrade
# Вручную:npm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestTOML support for content loaders
Astro 5.12 добавляет нативную поддержку TOML в content collections. file() и glob() loaders уже поддерживали Markdown, JSON и YAML — теперь и TOML.
Конфигурация не нужна: добавьте .toml в коллекцию со встроенным loader. Например:
name = "Apollo"launch_date = "1969-07-16"crew = ["Neil Armstrong", "Buzz Aldrin", "Michael Collins"]Коллекция с 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 };Доступ к TOML-контенту в компонентах:
---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>New Netlify dev experience
Адаптер Netlify теперь на Vite-плагине Netlify в development — вся платформа и примитивы Netlify на localhost!
The power of Netlify on localhost
Раньше примитивы Netlify в dev требовали Netlify CLI. Новый адаптер встраивает возможности в dev-сервер Astro.
После обновления адаптера astro dev даёт:
- Локальный Netlify Image CDN — по умолчанию для изображений
- Локальный Netlify Blobs — по умолчанию для сессий
- Redirects, rewrites и headers из конфига Netlify
- Netlify Edge Context на on-demand страницах
- Переменные окружения с привязанного сайта Netlify
Configuring dev features
Опция devFeatures в конфигурации адаптера Netlify:
images: локальный Netlify Image CDN в dev. По умолчаниюtrue.environmentVariables: автозаполнение dev-сервера env vars с сайта Netlify. По умолчаниюfalse.
import { defineConfig } from 'astro/config'import netlify from '@astrojs/netlify'
export default defineConfig({ adapter: netlify({ devFeatures: { environmentVariables: true, images: false, }, })})Наслаждайтесь Netlify-вкусом дома!
Спасибо Eduardo Bouças и chee rabbits из Netlify. Особая благодарность chee за участие в этом посте.Experimental raw environment values
Новая экспериментальная опция отключает автоматическое приведение типов значений env vars в import.meta.env. По умолчанию Astro конвертирует "true", "false", "1", "0" в соответствующие типы — неожиданно, т.к. env vars обычно строки.
Согласовано с обработкой Vite; вероятно станет дефолтом в будущем мажоре.
export default defineConfig({ experimental: { rawEnvValues: true, },});Только import.meta.env, не влияет на astro:env и типобезопасные переменные.
Спасибо Adam Langbert!
Bug fixes
Как всегда, с релиза 5.11 мы усердно исправляли проблемы. Все детали — в changelog.
Community
Команда Astro:
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
Спасибо 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


