HN 日本語サマリー

← 一覧へ戻る
Web開発

Astro 7.0

Astro 7.0 (astro.build)

158 pointsby saikatsg38 コメント

要約

Astro 7.0は、パフォーマンスの向上に焦点を当てたメジャーアップデートです。コンパイラがRustで書き直され、Markdown/MDX処理パイプラインもRustベースに変更されました。これにより、ビルド速度が大幅に向上し、Vite 8および新しいRolldownバンドラーとの連携も強化されています。さらに、高度なルーティング機能やAI支援開発機能も追加されました。

全文翻訳

Astro 7が登場しました!このリリースはすべてスピードに関するものです。.astroコンパイラはRustで書き直されました。MarkdownとMDXの処理は、新しいRustベースのパイプラインを通じて実行されるようになりました。レンダリングエンジンは、より高速なキューベースのアプローチに置き換えられました。Vite 8とその新しいRolldownバンドラーと組み合わせることで、Astro 7のビルドはベンチマークで15〜61%高速化されました。最も速いビルドは、まったく行われないビルドなので、Astro 7はルートキャッシュも安定させ、Netlify、Vercel、Cloudflare向けの実験的なCDNキャッシュプロバイダーを追加しました。Astro 7は、高度なルーティングも導入しており、Astroのリクエストパイプラインを完全に制御できるsrc/fetch.tsエントリポイントを提供します。AI支援開発のために、Astroはコーディングエージェントを検出できるようになり、開発サーバーをバックグラウンドで実行し、エージェントが機械可読なフィードバックを必要とする場合に構造化されたJSONログを出力できるようになりました。リリースハイライトの全容は以下の通りです:Vite 8 パフォーマンス Rustコンパイラ RustによるMarkdown & MDX キューイングレンダリング 高度なルーティング ルートキャッシュ CDNキャッシュプロバイダー AI強化 バックグラウンド開発サーバー JSONロギング コミュニティ既存のプロジェクトをAstro 7にアップグレードするには、自動化された@astrojs/upgrade CLIツールを使用してください:# 推奨:npx @astrojs/upgrade # 手動:npm install astro@latest新規プロジェクトの場合は、以下を使用してください:npm create astro@latest詳細な移行手順については、アップグレードガイドを参照してください。Vite 8Astro 7は、数年で最も重要なリリースとなるVite 8にアップグレードされました。主な変更点は、ViteがRolldownを同梱するようになったことです。RolldownはRustベースのバンドラーで、esbuildとRollupの両方を単一の統合バンドラーに置き換えます。RolldownはベンチマークでRollupより10〜30倍高速でありながら、同じRollupおよびViteプラグインAPIをサポートしています。Astroユーザーにとって、これはほとんどのプロジェクトで設定変更なしにビルドが高速化されることを意味します。Vite 8には互換性レイヤーが含まれており、既存のesbuildおよびrollupOptions設定をRolldownの同等物に自動変換します。プロジェクトでカスタムViteプラグインを使用している場合、RolldownはRollupと同じプラグインAPIをサポートしているため、ほとんどのプラグインは引き続き機能するはずです。パフォーマンスAstro 7は、これまでにない最も高速なAstroバージョンです。利用が増えるにつれて、より多くのチームがAstroで構築できるサイトの種類を限界まで押し広げてきました。Astro 6とその大規模な内部リファクタリングをリリースした後、私たちはAstroをより大きく、より複雑なサイトにスケールさせることを目指しました。Astroのビルドは次のように機能します:サイトのページ、コンテンツ、クライアントコンポーネントをJavaScriptにバンドルします。バンドルされたコードを小さなサーバーのように実行し、プリレンダリングされた各ページのリクエストを作成し、結果のHTMLを保存します。Astro 7は両方のステップを改善しますが、最初のステップ、つまりサイトのバンドルに焦点を当てています。最大の改善点は、ビルドの最も遅い部分の一部をRustで書かれたネイティブコードに移行したことです。生成ステップも、レンダリングするセクションをより効果的にキューイングする新しいレンダリング戦略のおかげで高速化されています。私たちのテストでは、全体的なビルド時間は15〜61%改善され、一部のサイトでは2倍以上の速さでビルドされました。.astroコンパイルとMarkdown処理がビルドの大部分を占めるサイトは、Rustに移行した部分であるため、最大の恩恵を受けます。これらのベンチマークは、48GBのメモリを搭載したMacBook Pro Apple M4 Proで実行されました:ウェブサイトBeforeAfterhttps://docs.astro.build (~6,313 pages) 114.54s 73.53shttps://astro.build (~308 pages) 62.70s 24.24shttps://biomejs.dev (~6,488 pages) 176.39s 149.90shttps://developers.cloudflare.com (8,431 pages) 386.89s 261.94shttps://tauri.app (7,117 pages) 86.12s 55.33shttps://aspire.dev (13,275 pages) 385.84s 326.11sRustコンパイラ.astroコンポーネント形式の新しいコンパイラを構築しました。これは現在Rustで書かれています。このコンパイラは、以前のGoベースのコンパイラを完全に書き直したもので、ほとんどの後方互換性がありますが、以下の点が異なります:HTMLの修正はなくなりました。Goコンパイラは、要素の並べ替え、タグの自動閉じ、ノードの移動など、ユーザーをしばしば驚かせ、デバッグが困難な問題を引き起こす方法で、マークアップをサイレントに「有効なHTML」に書き換えていました。新しいコンパイラは、マークアップをそのまま扱います。JSXスタイルの厳密さ。<div>Helloのような閉じられていないタグや<div class=