本文へ移動
verified onnext@16.3.5react@19
最終検証日 2026-09-26
Next.js道場

output export で generateStaticParams が無いと言われる

実際に出るエラー

Error: Page "/blog/[slug]" is missing "generateStaticParams()" so it cannot be used with "output: export" config. See more info here: https://nextjs.org/docs/messages/generate-static-params

output export の設定で、動的なパスのページに generateStaticParams が無いと出るビルドエラーです。

何が起きているか

next.config.ts に output: 'export' を書くと、ビルドの時点で全ページを HTML にして書き出します。書き出したファイルは、静的なファイルを配るだけの場所に置けます。

その代わり、書き出したあとはページを描くサーバーがいません。

動的なパス(app/blog/[slug]/page.tsx)は、slug に何が来るかが分からないと書き出せません。その一覧を返すのが generateStaticParams です。無いと、書き出すものが決まらないので止まります。

静的書き出しで、動的なパスが作られるまで
  1. Build
    generateStaticParams を呼ぶ

    作る slug の一覧を受け取る。無ければここで止まる。

  2. Build
    slug ごとにページを描く

    受け取った数だけ HTML を作る。

  3. Build
    out/ に書き出す

    あとは静的なファイルとして配るだけ。

直し方

作る slug をすべて返します。

// app/blog/[slug]/page.tsx
export function generateStaticParams() {
  return [{ slug: 'hello' }, { slug: 'world' }]
}
 
export default async function Post({ params }: { params: Promise<{ slug: string }> }) {
  const { slug } = await params
  return <h1>{slug}</h1>
}

実機で確かめました。ビルドが通り、out/ の下に hello.html と world.html が書き出されました。

開発サーバーでは、開くまで分からない

generateStaticParams が無いとき(実機で確かめた)
開発(next dev)本番ビルド
起動する—
そのページ開くと 500ビルドが止まる
文言missing exported function ...is missing ... so it cannot be used ...

開発サーバーは起動し、そのページを開いたときに初めて 500 になります。ログの文言も少し違います。

Error: Page "/[slug]/page" is missing exported function "generateStaticParams()", which is required with "output: export" config.

開いていないページの誤りは、ビルドするまで分かりません。

そもそも静的書き出しが合っているか

静的書き出しは、ページを描くサーバーを持たない配り方です。開かれたときに描く必要があるページ(ログインした人ごとに中身が違う、など)とは両立しません。

そうしたページがあるなら、output: 'export' をやめて、サーバーで動かす形を選びます(自分のサーバーに置く)。generateStaticParams を書けば解決する、という話ではありません。

output: 'export' を書いていないなら、generateStaticParams は必須ではありません。無いページは、開かれたときにサーバーで描かれます(この問題)。

出典

このページの内容は上記の一次情報を基準に書いています。個人ブログや二次情報を根拠にしていません。

理解できたか試す

では、このコードはどうなりますか。

静的なファイルだけで配りたくて、next.config.ts に output: 'export' を書きました。記事のページは動的なパスで作っています。ビルドするとどうなりますか。

この問題を解くこのテーマの問題 3 問