web-dev-qa-db-ja.com

Next.js自動静的サイト最適化を使用し、それでもNetlifyにエクスポートする方法は?

Next 9. からのアップデートの実装に取り​​組んでいます。私はgetInitialPropsからgetServerSidePropsに移動していて、私のexportPathMapがこれらのページが動的になることに不満を感じていることに気付きました。 nextを実行するとすべてが正常に機能しますが、_next build && next export_を実行すると、いくつかの問題が発生します。

static html export のドキュメントには_If your pages don't have getInitialProps you may not need next export at all; next build is already enough thanks to Automatic Static Optimization._と記載されています_next build && next start_を実行すると、新しいgetServerSideProps呼び出しでうまく機能するようになります。 Netlify経由でデプロイできるように、_next export_でも機能するために必要な手順は何ですか。 _next export_を実行しようとすると発生するエラーの例を次に示します

_Error occurred prerendering page "/videos/[videos_title]". Read more: https://err.sh/next.js/prerender-error:
Error: Error for page /videos/[videos_title]: pages with `getServerSideProps` can not be exported. See more info here: https://err.sh/next.js/gssp-export
_
4
camiblanch

SSRで構築されたアプリケーションは、Netlifyまたは他の静的ホスティングサイトにデプロイできません(NextJS SSRデプロイメントをサポートするVercelを除く)

(getServerSidePropsを使用して)SSRを使用する場合、next exportコマンドを使用しても、SSRとはまったく反対の静的コンテンツを作成しようとするため、意味がありません。

  • デプロイの1つの方法は、適切なルーティング構成でカスタムserver.jsファイルを作成することにより、仮想サーバー(EC2など)で実行することです。
  • 別の簡単で迅速な方法は、SSRの実装にVercel(Zeit以前は)を使用することです。彼らがそれを賢く扱うアプリケーション

Vercelには、SSRアプリケーションの配置に関するドキュメントが不十分です。幸いにも、サポートチームから以下の情報を入手し、VercelでのSSR展開について詳しく説明するためにドキュメントを更新するように依頼しました。

Vercelにデプロイする場合、

  • ビルドコマンドをnext buildまたはnpm run buildとして指定します
  • 出力ディレクトリはEmptyのままにします

注:カスタムserver.jsを含むアプリケーションはVercelで正しく機能しません。その場合は、仮想サーバー(EC2など)を使用してください。

1
Ganesh