Вышел Astro 2.2! В релизе:
- CDN support for assets: ассеты на внешнем CDN — Astro загружает их оттуда.
- image() schema helper API change: (experimental) helper
image()перенесён inline в определение схемы.
Также 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.
