30秒で判断
- 対応すべき人: 大量のMarkdown/コンテンツを
glob()ローダーで扱い、astro build時のメモリ逼迫やOOMに悩んでいる人 - 対応不要な人: コンテンツ量が少ない、または
.mdx中心でメモリ問題が起きていない人 - 確認コマンド:
npx astro --version
この変更が意味すること
Astro 7.1.0 はマイナーリリースで、目玉は glob() コンテンツローダーへの新オプション deferRender の追加です。
これまで astro build は、Markdown等のレンダリング可能なエントリをコンテンツ同期の段階で一括レンダリングし、その結果のHTMLをすべてメモリに保持していました。rehype-katex のような重いrehypeプラグインを使う大規模コレクションでは、この挙動がビルド時のメモリ不足を招くことがありました。
deferRender を true にすると、レンダリングを実際のページ描画時まで遅延させます(.mdx が既に使っているオンデマンド経路と同じ仕組み)。ソースに対して出力HTMLが大幅に膨らむコレクションで効果的です。
主な変更点
glob() ローダーへの deferRender オプション追加
src/content.config.tsのglob()定義でdeferRender: trueを指定可能に- 同期時の一括レンダリングを避け、メモリ使用量を削減
- レンダリングタイミングがオンデマンドに変わる点に留意(挙動そのものの互換性は保たれます)
EOL / サポート状況
Astro は endoflife.date の監視対象外のため、本記事ではEOL情報を提供していません。公式のリリースポリシーをご確認ください。
開発者への影響
- 大規模コンテンツサイトでビルドがOOMする問題の回避策になる
- 既存の挙動は維持されるため、オプトインで安全に試せる
- レンダリングが遅延されるため、ビルド時間の分布が変わる可能性がある
アップデート方法
npm install astro@7.1.0
データソース: GitHub Releases API, endoflife.date, npm Registry AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
