編集

Astro 6.0 リリース、本番近いランタイムでの dev と Fonts・ライブコレクション・CSP

Astro 6.0 のリリース。従来は astro dev が Node 前提で、Cloudflare Workers や Bun、Deno など「本番が Node ではない」構成では挙動の食い違いやバインディング欠如が起きやすかった。Vite の Environment API を踏まえた開発サーバーとビルドパイプラインの再構成により、開発時も本番に近いランタイムでの検証が可能。Cloudflare 向けの @astrojs/cloudflare は development・prerender・production いずれでも workerd を使い、cloudflare:workers と KV・D1 などのバインディングをローカルで扱える。加えて、フォントの取得・キャッシュ・フォールバックと preload をまとめる組み込み Fonts API、ビルド時コレクションと同じ API でリクエスト時にコンテンツを取る Live Content Collections(stable)、静的・動的ページ向けの Content Security Policy 設定 API(stable)を提供。

#主要な変更点

  • astro dev の再設計。非 Node ランタイム(Cloudflare Workers・Bun・Deno 等)でも「dev と本番の差」を減らす方針
  • Fonts API:astro/configfontProvidersFontastro:assets)でプロバイダーまたはローカルファイルから設定
  • Live Content Collections:defineLiveCollection()getLiveEntry() などで、CMS や API の更新を再ビルドなしで反映
  • CSP:defineConfigsecurity.csp と、公式ブログの Quick start では experimental.csp の併記。スクリプト・スタイルのハッシュ付与や directive の詳細設定に対応
  • 依存のメジャー更新:エコシステム全体で Vite 7、ハイライトは Shiki 4、コンテンツスキーマは Zod 4(スキーマ定義は astro/zod から import)
bash
npx @astrojs/upgrade
javascript
// CSP を有効化する例(公式ブログの Quick start に準拠)
import { defineConfig } from "astro/config";

export default defineConfig({
  security: { csp: true },
  experimental: { csp: true },
});

#留意事項

Node.js は 18・20 のサポート終了とし、22 以上が必須。カスタムで Vite をピン留めしている場合は v7 以上へ。Route Caching の初期 memoryCache プロバイダーは Node アダプター向けと記載。Rust コンパイラ・Queued Rendering・Route Caching は実験的フラグと別パッケージ(@astrojs/compiler-rs 等)が前提。

#参考文献

編集