Nuxt.js

Nuxt.js 3で静的サイト生成(SSG)とVercelデプロイの手順

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Nuxt.js 3で静的サイト生成(SSG)とVercelデプロイの体系的な手順

Nuxt.js 3を用いた静的サイト生成(SSG)Vercelへのデプロイは、パフォーマンスと開発効率を両立させる現代的なウェブ構築手法です。本記事では、Node.js 18+環境に最適化された最新手順と、Vercel特化型のデプロイ方法をステップバイステップで解説します。Nuxt.js 3 静的サイト生成 デプロイ Vercelというキーワードを軸に、技術的な詳細まで網羅しています。


Nuxt.js 3プロジェクトの初期設定

Nuxt.js 3プロジェクトの初期設定は、nuxi initコマンドにより迅速に完了します。SSGモード有効化にはssr: falseの指定が必要で、Node.js 18+環境での動作も確認済みです。

nuxi initによるプロジェクト作成

Nuxt.js 3では、公式が推奨するnuxi CLIツールを用いてプロジェクトを作成します。以下の手順で初期設定を行います。

  1. Node.js 18+とnpm/pnpmをインストール済みであること確認
  2. コマンドラインで npx nuxi init <プロジェクト名> を実行
  3. プロジェクトテンプレートを選択(appまたはspa推奨)
  4. 生成されたディレクトリに移動し、npm installを実行

この時点でNode.jsのバージョンが18以上であることが必須です。以下はSSG/SSRモードの選択比較表です。

モード 説明 適用シーン
SSG(ssr: false) 静的生成による高速ロード サイト内リンクが多い静的ページ構築
SSR(ssr: true) サーバーサイドレンダリング 動的なコンテンツ更新が必要なケース

SSGモードの有効化方法

プロジェクト初期設定時にnuxi initで選択するテンプレートによって、自動的にSSG/SSRモードが決まります。SSGモードを明示的に有効化したい場合は、nuxt.config.tsssr: falseを追加します。

この設定により、npm run generateで静的ファイルが生成され、Vercelデプロイに最適な構成になります。


静的生成設定の詳細

SSG環境を確立するには、baseURLの設定方法動的ルート対応策の2つのポイントが不可欠です。特にapp.baseURLruntimeConfig.app.baseURLの使い分けやprerenderオプションの指定がミソです。

baseURLの正しい設定方法

静的サイトを構築する際、baseURLはサイト全体のURL構造に直接影響します。2つの設定方法があり、用途によって使い分ける必要があります。

  • app.baseURL:環境ごとに固定値を指定(例: テスト用ドメイン)
  • runtimeConfig.app.baseURL:開発・本番環境で切り替え可能な動的値

具体例として、nuxt.config.ts内で以下のように設定します。

注意:Vercelデプロイ時にAPP_BASE_URLは環境変数で設定する必要があります。

動的ルート対応のprerender設定

動的なURLが存在する場合(例: /user/[id].vue)、prerenderオプションで事前に生成するパスを指定します。以下は基本設定例です。

prerenderはSSGのパフォーマンスを向上させる重要な技術です。動的ルート数が多すぎる場合、メモリ不足でエラーになる可能性があるため、適切に制限してください。

注意点: 動的ルートが多い場合、prerenderオプションの指定によりメモリ使用量が増える傾向があります。動的パス数を監視し、必要最小限に抑えることが推奨されます。


静的ファイルの生成プロセス

静的ファイル生成はnpm run generateコマンド一発で完了します。生成されるdist/フォルダ内の構造と処理フローを確認しましょう。

generateコマンドの実行手順

以下のコマンドをプロジェクトルートから実行します。

このコマンドは、以下のようなフローで動作します。

  1. 全てのページを静的HTMLに変換(SSG処理)
  2. prerender設定された動的ルートを個別に生成
  3. 生成されたファイルをdist/フォルダにまとめる

注意:動的ルートが多い場合、メモリ使用量が増えるため、--no-spaオプションで不要な処理を省略できます。

出力ディレクトリ構造確認

生成されたdist/フォルダの構造は以下のようになります。

  • index.html:サイトトップページ
  • _nuxt/:JavaScriptのバンドルファイル
  • assets/:静的リソース(画像など)

この構造は、Vercelへのデプロイに最適化されています。


Vercelへのデプロイ手順

生成された静的ファイルをVercelで公開するには、以下の2つの準備が必要です。特にnuxi deployコマンドの活用が簡潔なステップになります。

Vercel CLIのインストール

Vercel CLIをプロジェクトにインストールします。

または、package.jsonに以下を追加してローカルインストール可能です。

nuxi deployコマンドの実行

Vercelへのデプロイは、以下の手順で完了します。

  1. Vercelアカウントを作成(https://vercel.com
  2. プロジェクトを初期化:nuxi deploy init
  3. npm run generateで静的ファイル生成
  4. nuxi deployを実行し、Vercelにアップロード

このコマンドは、プロジェクトの構成ファイル(.vercel)に基づいて自動的にデプロイ先を決定します。初回設定時にドメインや環境変数を指定できるため、柔軟性が高いです。

実行フロー: nuxi deploy initコマンドは、Vercelのプロジェクト設定ファイル(.vercel/project.json)を作成し、デプロイ時のベースとなる構成を定義します。その後、nuxi deployで静的生成されたdist/フォルダが自動的にアップロードされます。

注意:Vercelで公開されたURLは、https://<プロジェクト名>.vercel.app/の形式になります。


デプロイ後の検証方法

デプロイ後も正確な動作確認が不可欠です。特にURL構造とクライアントサイドナビゲーションのテストが重要です。

URL構造の確認手順

Vercelが生成したURLは、<プロジェクト名>.vercel.app/という固定形式になります。動的ルートの検証例として、以下のアクセスを試してください。

  • https://<プロジェクト名>.vercel.app/
  • https://<プロジェクト名>.vercel.app/user/1

チェックポイント:URLに?_vercel_preview=trueが含まれていないか確認してください。存在する場合は、preview versionではなく最新バージョンをデプロイしていない可能性があります。

SSG動作チェックポイント

SSG環境では、以下の2点をテストすることが重要です。

  1. クライアントサイドナビゲーションのテスト
  2. router.push()でページ移動し、URLが変化するか確認
  3. リロード時の挙動確認
  4. ブラウザでF5キーを押し、静的ファイルが正しく読み込まれるか

両方のテストに成功すれば、SSG環境は正常に構築されています。


本記事では、Nuxt.js 3による静的サイト生成(SSG)Vercelへのデプロイについて、最新情報に基づいた体系的な手順を解説しました。ステップバイステップで実装し、今すぐプロジェクトを作成して、本記事のステップに沿ってSSG環境を構築しよう

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Nuxt.js