Astro 6 の新機能 - 開発と本番の差を埋める新 astro dev、Fonts API、移行の注意点

Astro 6 の新機能 - 開発と本番の差を埋める新 astro dev、Fonts API、移行の注意点

作成日:
読了:9
更新日:

コンテンツ重視の Web フレームワーク Astro のメジャー版 Astro 6 が登場しました(6.0 が2026年3月10日、6.1 が3月26日)。この記事では、Astro 6.0 / 6.1 の新機能と、5.x からの移行で注意すべき破壊的変更を、公式リリースノートとアップグレードガイドを一次ソースに整理します。

Astro とは

Astro はデフォルトでサーバー側に HTML をレンダリングし、JavaScript を最小化するコンテンツ重視のフレームワークです。React / Vue / Svelte などを同一プロジェクトで併用でき(UI フレームワーク非依存)、インタラクティブ性が必要な箇所だけを「アイランド(Islands Architecture)」として個別にハイドレートします。ブログ・ドキュメント・マーケティングサイトなど、表示速度が効くコンテンツ配信に向きます。

Astro 6.0 で安定化した主な機能

新しい astro dev(開発と本番の差を埋める)

6.0 最大の変更は astro dev(開発サーバー)の刷新です。Vite の Environment API を使い、本番と同じランタイムを開発時に実行します。これにより、Cloudflare Workers / Bun / Deno などの非 Node.js ランタイムで起きがちな「dev では動くのに本番で壊れる」差異を減らせます。

あわせて Cloudflare サポートが改善し、@astrojs/cloudflare アダプタが全工程で workerd を実行。KV / D1 / R2 / Durable Objects などのバインディングにローカルでアクセスできます。

組み込み Fonts API

フォントの管理(ダウンロード・キャッシュ・フォールバック生成・preload リンク生成)を Astro が引き受ける Fonts API が組み込みになりました。ローカルファイルや Google Fonts / Fontsource から扱えます。

astro.config — Fonts API
import { defineConfig, fontProviders } from 'astro/config';
 
export default defineConfig({
  fonts: [
    {
      name: 'Roboto',
      cssVariable: '--font-roboto',
      provider: fontProviders.fontsource(),
    },
  ],
});
使う側
---
import { Font } from 'astro:assets';
---
<Font cssVariable="--font-roboto" preload />

Live Content Collections と CSP の安定化

  • Live Content Collections: リクエスト時に CMS / API / DB からコンテンツを取得する統一 API が安定化(5.10 で実験的だったもの)
  • Content Security Policy(CSP): 静的・動的ページの CSP ヘッダ自動生成、script / style の自動ハッシュ化が安定化。security: { csp: true } で有効化

Astro 6.0 の実験的機能

  • Rust コンパイラ: experimental.rustCompiler で有効化(別途 @astrojs/compiler-rs が必要)。Go 製コンパイラの後継
  • Queued Rendering(2パスレンダリング): experimental.queuedRendering.enabled。公式は「最大2倍高速」と表現(実験的・条件依存)
  • Route Caching: Astro.cache による SSR レスポンスキャッシュ(組み込み memoryCache プロバイダ)
Rust コンパイラ(実験的)
export default defineConfig({
  experimental: { rustCompiler: true },
});

Astro 6.1 の変更(破壊的変更なし)

6.1 は細かな改善が中心です。

  • 画像コーデック別のデフォルト設定image.service.config で JPEG/WebP/AVIF/PNG のエンコード既定値を一括設定)
  • SmartyPants の詳細設定(非英語向けに引用符・ダッシュ・省略記号をカスタマイズ)
  • i18n フォールバックルートの sitemap 自動収録
  • モバイルの View Transitions 改善(ブラウザがネイティブ遷移を提供する場合の二重アニメーション防止)
  • リバースプロキシ背後での CSRF 保護(X-Forwarded-Proto を正しく解釈)

5.x からの移行(破壊的変更)

メジャー更新なので、移行時の注意がいくつかあります。

  • 最低要件が上がった: Node 22.12.0 以降(18/20 は終了)、Vite 7、Shiki 4、Zod 4
  • レガシー Content Collections API を完全削除: すべてのコレクションを5.0 導入の Content Layer API(loader 使用)へ移行必須。legacy.collections フラグも廃止
  • astro:contentz は非推奨astro/zod を使う(Zod 4 へ。例えば z.email() がトップレベルに移動)。Zod 4 の変更点は Zod 4 ガイドも参照
  • <ViewTransitions /> を削除<ClientRouter /> を使う
  • Astro.glob() を削除import.meta.glob() を使う
  • CommonJS の設定ファイル(.cjs / .cts)のサポート削除

アップグレードは次のコマンドが用意されています。

アップグレード
npx @astrojs/upgrade

NOTE

Server Islands と Actions は Astro 6 の新機能ではありません。 Server Islands(server:defer)は 5.0 で安定化、Actions は 4 系で導入済みです。記事や資料で「6 の新機能」として紹介されることがありますが、版を取り違えないよう注意してください。

立ち位置(他フレームワークとの比較)

一般的な整理として、Next.js などが高インタラクティブなアプリケーション寄りなのに対し、Astro はコンテンツ配信寄りで、デフォルトで JS をほぼ送らない設計が強みです(公式が他フレームワークと直接優劣を述べているわけではないので、選定は要件次第)。Vite 7 必須化など足回りは Vite 7 / Rolldown の流れとも地続きです。

まとめ

  • Astro 6.0(2026-03-10)の目玉は新しい astro dev。Vite Environment API で本番ランタイムを開発時に走らせ、dev と本番の差を縮める
  • Fonts API・Live Content Collections・CSP が安定化。実験的に Rust コンパイラ / Queued Rendering / Route Caching
  • 6.1 は画像コーデック既定値・SmartyPants・i18n sitemap・モバイル View Transitions など(破壊的変更なし)
  • 5.x からの移行は Node 22.12+ / Vite 7 / レガシー Content Collections 廃止 / <ViewTransitions/><ClientRouter/> / Astro.glob() 廃止 / Zod 4 に注意。npx @astrojs/upgrade で更新
  • Server Islands(5.0)・Actions(4 系)は Astro 6 の新機能ではない

「開発で動いたものが本番でそのまま動く」——非 Node ランタイムを使うほど効いてくるのが、Astro 6 のいちばん実用的な進化です。

参考リンク

CloudflareがVoidZeroを買収 - Vite / Vitest / Rolldown / Oxc エコシステムの今後とVite+

CloudflareがVoidZeroを買収 - Vite / Vitest / Rolldown / Oxc エコシステムの今後とVite+

10

2026年6月4日、CloudflareがVite・Vitest・Rolldown・Oxcを擁するVoidZeroを買収しました。VoidZeroとは何か、Evan Youが統一を進めてきたツールチェーン、当初有償から完全MITオープンソースへ転換したVite+、買収の狙い(AI-nativeなWebとCloudflareへの統合)、そして「ベンダー中立性は保たれるのか」という開発者の懸念まで、Cloudflare・VoidZero・Viteの公式発表を一次ソースに整理します。

WebSocket・SSE・ポーリングの使い分け - リアルタイム通信の選び方

WebSocket・SSE・ポーリングの使い分け - リアルタイム通信の選び方

10

Webでリアルタイムにデータを届ける3つの方法 — ポーリング(short / long polling)、Server-Sent Events(SSE / EventSource)、WebSocket を実務目線で比較します。通信方向・プロトコル・自動再接続・バイナリ対応の違い、コード例、SSE の HTTP/1.1 接続数上限やプロキシのバッファリング、WebSocket のスケールと認証(カスタムヘッダが使えない)といった落とし穴、そして用途別の選び方まで、MDN・RFC 6455 / 6202 を一次ソースにまとめます。