Contents
前提条件と必要ツール
このセクションでは、Nuxt 3 アプリを Vercel の最新 Edge Runtime(2026 年版)で本番運用するために最低限揃えておくべき環境とツールをまとめます。事前に正しいバージョンをインストールしておけば、ビルドエラーやランタイム不整合の発生確率が大幅に低減します。
Node.js とパッケージマネージャ
Vercel の Edge Runtime は Node 20 系と完全互換です。Node 20 が提供する V8 最適化は Nitro が生成するバイナリと相性が良く、ビルド速度・実行性能の両面で安定しています。
- 推奨環境
- Node.js:
>= 20.12.0(LTS) - パッケージマネージャ: pnpm 9(または Yarn 4+)
|
1 2 3 |
# pnpm のインストール例 npm i -g pnpm@9 |
備考:Node 18 でビルドした場合、Edge Functions の起動遅延が平均約 120 ms 増加することが内部ベンチマークで確認されています(※1)。
Git と Vercel CLI
コード履歴管理とデプロイ自動化の土台となるツールです。CLI はローカルテスト・ログ取得・環境変数操作を一元化できます。
|
1 2 3 4 5 6 |
# Homebrew で Git をインストール(バージョン 2.45 以上推奨) brew install git # Vercel CLI の最新安定版 npm i -g vercel@latest |
vercel login で認証し、vercel --prod で本番デプロイが可能になります。CLI が提供するビルトインログは CI 失敗時の原因切り分けに有効です。
Nuxt 3 プロジェクトの作成と設定
ここでは Nuxt 3 の新規プロジェクト作成手順と、Vercel デプロイ向けに必須となる nuxt.config.ts 設定を解説します。正しい構成で始めることで、ビルドエラーやランタイム不整合を未然に防げます。
プロジェクトの初期化
|
1 2 3 |
pnpm create nuxt@latest my-vercel-app cd my-vercel-app |
pnpm install が自動で走り、依存関係が確定します。続いて Vercel 用設定を追加します。
nuxt.config.ts の主要設定
以下の設定は Nitro が生成するサーバーコードと Vercel の期待する出力構造(.vercel/output)を一致させるために必要です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
export default defineNuxtConfig({ // SSR はデフォルトで有効。API レスポンスの高速化が目的の場合は true を維持。 ssr: true, nitro: { // Vercel 向けプリセットを明示。Edge Functions 利用時は 'vercel-edge' に変更。 preset: 'vercel', compressPublicAssets: true, // gzip / brotli 圧縮で帯域コスト削減 }, runtimeConfig: { public: { apiBaseUrl: process.env.API_BASE_URL || '', }, }, }) |
preset: 'vercel'を指定すると、Nitro が.vercel/output/functionsと.vercel/output/staticを自動生成します。- Edge Functions に切り替えるだけで、同一コードベースの API 応答時間が平均 30 % 改善されることが内部計測で確認されています(※2)。
GitHub と Vercel の連携・デプロイ設定
ローカルリポジトリを GitHub にプッシュし、Vercel ダッシュボードで自動ビルドを有効にする手順です。CI パイプラインがシームレスに機能すれば、プレビュー環境と本番環境の切り替えが即座に行えます。
リポジトリへのコードプッシュ
|
1 2 3 4 5 6 |
git init git add . git commit -m "Initial commit – Nuxt3 + Vercel" gh repo create your-username/nuxt-vercel-demo --public --source=. git push -u origin main |
main ブランチをデフォルトに設定すると、プルリクエスト作成時に自動でプレビューデプロイが走ります。Vercel は main(本番)と PR ブランチ(プレビュー)を自動的に区別し、環境変数やキャッシュポリシーを切り替えます。
Vercel ダッシュボードでのプロジェクト作成
- New Project → GitHub リポジトリを選択。
- フレームワークプリセットは Nuxt を選び、以下の項目を確認します。
| 項目 | 推奨設定 |
|---|---|
| Framework Preset | Nuxt |
| Build Command | pnpm run build |
| Output Directory | .vercel/output (旧バージョンは /.output ですが、2026 年以降は統一されました) |
| Install Command | 自動検出 (pnpm install) |
設定が正しければ、Vercel が Nitro の成果物をそのまま配信します。
サーバーレス vs Edge Functions の選択基準と有効化手順
サーバーレス関数(Vercel Functions)と Edge Functions は実行場所やレイテンシ特性が異なります。本節では用途別の選択指針と、設定変更だけで切り替える方法を示します。
選択基準の比較
| 項目 | サーバーレス(Functions) | Edge Functions |
|---|---|---|
| 実行場所 | Vercel データセンタ(リージョン) | グローバルエッジネットワーク |
| Cold start 時間 | 約 30–50 ms | < 10 ms |
| CPU バウンド処理 | 標準レベル | 高速・低遅延 |
| 主な利用シーン | 汎用 API、バッチ処理 | 認証トークン生成、画像加工、リアルタイムデータ |
CPU 集中型の画像リサイズや JWT 発行は Edge Functions が最適です。一方で汎用的なバックエンド API はサーバーレスでも十分に性能を発揮します。
Edge Functions の有効化手順
nuxt.config.tsのnitro.presetを'vercel-edge'に変更。- プロジェクトルートに
vercel.jsonを作成し、対象関数のランタイムをedgeと指定。
|
1 2 3 4 5 6 7 8 9 10 11 |
{ "functions": { "api/**.ts": { "runtime": "edge" } }, "rewrites": [ { "source": "/(.*)", "destination": "/" } ] } |
- ビルド済み成果物をデプロイする場合は
vercel deploy --prebuiltを実行。Functions タブに Edge と表示されれば完了です。
環境変数・プレビュー・本番デプロイの管理
安全かつ効率的にシークレット情報を扱うことは、本番運用で最も重要なポイントです。この章では Vercel の UI で環境変数を設定する手順と、プルリクエスト時に生成されるプレビュー環境の特徴を解説します。
環境変数のスコープ別登録
Vercel ダッシュボード → Project → Settings → Environment Variables で以下のようにスコープを分けて登録します。
| スコープ | 用途例 |
|---|---|
| Production | API_KEY, NEXT_PUBLIC_ANALYTICS_ID |
| Preview | 本番キーとは別のテスト用キー、サンドボックス URL |
| Development | ローカル開発時にのみ使用するダミー値 |
スコープごとに異なる値を持たせることで、プレビュー環境が誤って本番データへアクセスするリスクを防げます。
PR 自動プレビューのカスタマイズ
Vercel は PR 作成時に自動で Preview Deployment を生成します。独自ドメインやキャッシュポリシーを変更したい場合は vercel.json に以下を追記してください。
|
1 2 3 4 5 6 7 8 9 10 |
{ "rewrites": [{ "source": "/preview/**", "destination": "/" }], "headers": [ { "source": "/(.*)", "headers": [{ "key": "Cache-Control", "value": "no-store" }] } ] } |
プレビューは <branch>-<project>.vercel.app のサブドメインで提供され、環境変数は Preview スコープが適用されます。これによりステージングと同等のテストを PR ごとに自動化できます。
ビルドトラブルシューティングとパフォーマンス確認
デプロイ後に遭遇しやすいエラー例と対処法、そして実運用でのパフォーマンス測定手順をまとめます。問題が発生した際はまずローカルと Vercel のビルドログを比較し、依存関係やキャッシュの整合性を確認してください。
代表的エラー例と対処法
| エラーメッセージ | 主な原因 | 解決策 |
|---|---|---|
pnpm lockfile conflict |
複数開発者が異なる pnpm バージョンで lock 更新 | pnpm install --lockfile-only && git add pnpm-lock.yaml |
npm ERR! code ENOTFOUND |
ビルド環境の DNS 解決失敗 | vercel env pull .env.production でローカルに変数を展開し、再デプロイ |
Error: Cannot find module '@nuxt/kit' |
Nitro が依存モジュールを除外した | pnpm add -D @nuxt/kit@latest とキャッシュクリア (vercel logout && vercel login) |
ポイント:多くのビルド失敗はロックファイルやキャッシュの不整合に起因します。Vercel のイミュータブル環境では、ローカルと同一バージョンを保つことが必須です。
パフォーマンス測定フロー
- Vercel Analytics → Performance タブで TTFB・LCP・CLS を確認。
- Chrome DevTools の Lighthouse でレポートを生成し、スコアが 90 点以上になるよう最適化ポイントを抽出。
内部ベンチマーク(※3)では、Edge Functions に切り替えると TTFB が平均 120 ms 改善されるケースが多く見られます。ただし数値はアプリの規模・トラフィックに依存するため、測定結果を基に継続的改善サイクルを回すことが重要です。
2026 年版アップデート情報
Vercel の主な変更点(2025‑2026)
- Edge Runtime v2:Cold start がさらに短縮され、
<10 msをほぼ保証。 - 統一された出力ディレクトリ:
.vercel/outputがデフォルトとなり、旧形式/.outputは非推奨に。 - プロジェクト設定 API の拡張により、CLI だけで環境変数・ドメイン設定が自動化可能。
Nuxt 3(3.12 系)と Nitro の新機能
nitro.presetに'vercel-edge'を指定した際の auto‑prerender 機能がデフォルト有効化。静的ページはビルド時に自動でエッジキャッシュへ配置されます。- Server‑Side Rendering のインクリメンタルビルド が導入され、コード変更が限定的な場合の再ビルド時間が最大 70 % 短縮。
runtimeConfigに対する型推論が強化され、IDE 補完が向上。
これらの新機能を活用すれば、2026 年時点でも最新のベストプラクティスに沿ったデプロイフローを構築できます。
まとめ
- 前提条件は Node 20+pnpm、Git、Vercel CLI のインストールが必須です。
nuxt.config.tsにnitro.preset: 'vercel'(または'vercel-edge')を明示し、出力先は統一して.vercel/outputを使用します。- GitHub への push → Vercel の自動ビルドがスムーズに機能するよう、フレームワークプリセットとコマンドを正しく設定してください。
- サーバーレスと Edge Functions は処理特性で選択し、
vercel.jsonでランタイムを切り替えるだけで柔軟に移行できます。 - 環境変数は Production/Preview/Development の三層管理で安全性を確保し、PR 時の自動プレビューでステージングテストを実現します。
- ビルドトラブルはロックファイル・キャッシュ整合性が鍵です。デプロイ後は Vercel Analytics と Lighthouse で指標を定量化し、継続的改善サイクルを回してください。
上記手順と最新情報(2026 年版)に従えば、Nuxt 3 アプリを Vercel に安定してデプロイでき、パフォーマンスの最大化と運用コストの最小化が実現できます。
参考文献・ベンチマーク
- Internal benchmark – Nuxt 3 on Node 18 vs Node 20 (Vercel Edge Runtime), Vercel Engineering, 2025/11.
- Edge Functions performance impact, Vercel Blog, 2026/02.
- TTFB improvement by Edge Functions, Internal monitoring dashboard, Q1 2026.