コンテンツにスキップ

実験的な並列事前レンダリング

Type: boolean | { workers?: number }
Default: false

追加: astro@7.4.0 New

この実験的機能を有効にすると、astro buildは1つのCPUコアの代わりに複数のCPUコアを同時に使用し、静的ページを並列にレンダリングします。ページ数が多いサイトでは、これによりビルド時間を大幅に短縮できます。

並列事前レンダリングを有効にするには、Astroの設定に次のフラグを追加します。

astro.config.mjs
import { defineConfig } from "astro/config";
export default defineConfig({
experimental: {
parallelPrerender: true,
},
});

デフォルトでは、Astroは利用可能なCPUコアを1つ残してすべて使用します。使用するCPUコアを減らすには、Astroで使用するCPUコア数をworkersに設定します。

astro.config.mjs
import { defineConfig } from "astro/config";
export default defineConfig({
experimental: {
parallelPrerender: {
workers: 4,
},
},
});

ワーカーを1つ追加するごとに、ビルドで使用するメモリが増えます。ビルド中にメモリが不足する場合や、ビルドが速くならない場合は、ワーカー数を減らしてみてください。

並列事前レンダリングには、現在次の制約があります。

  • 並列にレンダリングされるページ間では、モジュールレベルの変数は共有されません。たとえば、あるページのレンダリング中に変数にキャッシュされた値が、別のページのレンダリング時に利用できるとは限りません。
  • getStaticPaths() (EN)のpropsに、関数やクラスのインスタンスなど、シリアライズできない値が含まれるページは、並列にレンダリングできません。
  • アダプターがページを事前レンダリングする独自の方法を提供している場合、この機能は効果がありません。公式アダプターの中では、@astrojs/cloudflare (EN)のみが該当します。このフラグが無視される場合、Astroはビルド中に警告を出力します。
貢献する コミュニティ スポンサー