プロジェクトは作成済みとし,本記事ではファイル生成の方法を説明します.
Next.js で作成した Web サイトをホスティングサーバにアップロードすることが最終目的です.
App Router でのファイル生成
Pages Router では,Nuxt.js(Vue を用いたフレームワーク)などと同様に,SSG(Static Site Generation,静的ファイル生成)という用語が使われていました.
App Router では,SSG という用語は使わなくなり,Static Rendering と呼ばれるようになったようです.
設定
const nextConfig = {
output: 'export',
// Optional: Change links `/me` -> `/me/` and emit `/me.html` -> `/me/index.html`
// trailingSlash: true,
// Optional: Prevent automatic `/me` -> `/me/`, instead preserve `href`
// skipTrailingSlashRedirect: true,
// Optional: Change the output directory `out` -> `dist`
// distDir: 'dist',
}
module.exports = nextConfig
output
を export
とすると,ルートディレクトリ直下の out
ディレクトリ下にファイル群が生成されます.ディレクトリ名は変更できます.
デフォルト設定では,URL の末尾に.html をつける形でアクセスする仕様になっているため,npm run dev
の実行時と同様にルーティングするには,trailingSlash
を true
にする必要があります.
参考:Deploying: Static Exports | Next.js
コマンド
上記のように設定し,いつも通りコマンドを実行します.
$ npm run build
テスト
生成後のファイルに問題ないか,レンダリングをテストするには,以下のコマンドを実行します.
$ npx serve@latest out
package.jsonに設定しておくと楽です.
最後に
動的にレンダリングするSSR(Server Side Rendering)に対して,SSGがあるという認識でしたが,発展が著しいようです.