Astro 2.2

Автор
Matthew Phillips

Вышел Astro 2.2! В релизе:

Также Astro 2.2 включает 8 patch changes и выпущен вместе с 8 интеграциями с patch-релизами.

Выполните npm i astro@latest для обновления.

CDN support

В 2.2 можно настроить Astro на CDN для загрузки ассетов. В конфиге Astro:

import { defineConfig } from "astro/config"
export default defineConfig({
build: {
assetsPrefix: "https://cdn.example.com",
},
})

Ссылки на ассеты, скрипты и стили после astro build получат префикс URL. Работает для SSG и SSR.

<link rel="stylesheet" href="https://cdn.example.com/_astro/global.css" />

Ассеты по-прежнему собираются в dist/. Настройте деплой-скрипты для выкладки dist/_astro/ на CDN.

image() schema API change

В 2.2 helper image() в experimental assets API перенесён в callback, где определяется схема.

import { defineCollection, z } from "astro:content"
const blog = defineCollection({
schema: ({ image }) =>
z.object({
image: image().refine((img) => img.width >= 200, {
message: "image too small",
}),
}),
})

Раньше image() импортировался из 'astro:content', что вызывало баги с относительными путями в frontmatter. Callback согласуется с рекомендациями Zod для контекстных ссылок.

Callback-схема доступна только с experimental assets. Без image() можно по-прежнему назначать схемы напрямую в schema.

Try Astro 2.2

Спасибо всем участникам релиза. Помимо новых функций — исправления в core и интеграциях. См. полные release notes.