Nuxt.js

Nuxt 3 のインストールから Netlify 静的サイトデプロイまで完全ガイド

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

スポンサードリンク

1. Nuxt 3 のインストールとプロジェクト作成

このセクションで扱う内容

  • Node.js とパッケージマネージャのバージョン確認
  • 推奨される pnpm によるプロジェクト生成手順
  • VS Code で快適に開発できる拡張機能

1‑1. Node.js バージョンの確認

Node.js は v18 以上 が公式サポート対象です。ターミナルで以下を実行し、バージョンが要件を満たすことを確認してください。

1‑2. パッケージマネージャの選択

npm でも動作はしますが、pnpm がハードリンクベースのストレージを採用しているため、インストール時間・ディスク使用量の面で有利です。実測では同一依存関係が多いプロジェクト間で 約30 % のインストール高速化 が報告されています(※GitHub Actions のキャッシュレポートを参照)。

推奨コマンド例

ポイント
create nuxt@latest は Nuxt 3 の公式スキャフォールディングツールです。プロジェクト作成時に --ts オプションを付与すると TypeScript が自動的に有効になります。

1‑3. VS Code 拡張機能(開発体験向上)

拡張機能 主な効果
Volar Vue 3/TypeScript の型情報をリアルタイムで提供
Nuxt 3 Snippets definePageMeta など Nuxt 固有 API のコード補完
ESLint (recommended) コーディング規約の自動チェック

2. pnpm のインストールとバージョン管理

このセッションで扱う内容

  • corepack を利用した推奨インストール方法
  • 固定バージョンに依存しないアップデート手順

2‑1. corepack による pnpm の有効化(Node 18+ 推奨)

  • メリットcorepack は Node に組み込まれたパッケージマネージャー管理ツールで、プロジェクトごとに pnpm のバージョンを自動的に合わせられるため、固定バージョンのハードコーディングが不要です。
  • 代替手段:グローバルインストールしたい場合は npm i -g pnpm@latest としても問題ありません。

3. 静的サイト生成(SSG)と Incremental Static Regeneration(ISR)の設定

Nuxt 2 の target: 'static' は廃止され、Nuxt 3 では output: 'static'nuxi generate コマンドが公式の静的サイト生成手段です。

このセクションで扱う内容

  • SSG を有効にする nuxt.config.ts の記述
  • ISR(再生成)を Nitro の static.ttl で実装
  • Netlify 用 CDN 配信設定 (assetPrefix)

3‑1. Nuxt 3 の静的サイトモード

assetPrefix の具体例(Netlify CDN 使用時)

  • cdnURL(または assetPrefix と同等の概念)は、ビルド時に静的リソースへのパスを上書きし、エッジロケーションから高速配信できるようにします。
  • Netlify の Asset CDN はデフォルトで有効なので、上記設定だけで画像や JS/CSS が自動的にキャッシュされます。

3‑2. ISR 実装例(ページコンポーネント)

  • useAsyncData はクライアント側でデータ取得を遅延実行し、SSR 時にキャッシュが無い場合は Netlify Functions(以下参照)へフォールバックします。
  • TTL が切れたら Nitro が自動的に再ビルドをトリガーし、次回のリクエストで最新データが配信されます。

4. Netlify 用設定ファイルとデプロイ手順

このセクションで扱う内容

  • netlify.toml の正しい記述例(ビルドコマンド・公開ディレクトリ)
  • SPA フォールバックや API リダイレクトの設定
  • assetPrefix と CDN の関係性

4‑1. netlify.toml 完全サンプル

  • ビルドコマンドnuxt build && nuxt export ではなく、npx nuxi generate が公式です(内部的に nuxt build → 静的エクスポートを実行します)。
  • publish = "dist" は Nuxt 3 のデフォルト出力先です。

4‑2. Netlify 側での assetPrefix 設定

Netlify のビルド環境変数 CDN_URLnuxt.config.tsapp.cdnURL にマッピングするだけで、全静的リソースが CDN 経由で配信されます。


5. GitHub 連携と Deploy Preview の活用

このセクションで扱う内容

  • GitHub リポジトリを Netlify に接続する手順
  • Pull Request ごとのプレビュー URL の取得方法
  • 環境変数の安全な管理

5‑1. 手順概要

手順 内容
1 GitHub にリポジトリを作成し、ローカルコードを git push
2 Netlify ダッシュボード → 「New site from Git」 → プロバイダーに GitHub を選択
3 ビルド設定が自動検出されない場合は手入力
・Build command: npx nuxi generate
・Publish directory: dist
4 「Deploy contexts」→ Pull request previews を有効化
5 必要な環境変数(例:API_BASE_URLCDN_URL)を UI から追加

5‑2. Deploy Preview の確認

  • PR 作成 → Netlify が自動でビルドし、コメントに https://<branch>--your-site.netlify.app のプレビュー URL を投稿。
  • プレビューは本番環境と同一のビルド設定・CDN 配信が行われるため、ステークホルダーへの実機感覚での確認が可能です。

6. パフォーマンス最適化と SEO 強化

このセクションで扱う内容

  • @nuxt/image と Netlify の画像最適化を組み合わせた手法
  • CDN 配信 (assetPrefix) による静的リソース高速化
  • Lighthouse を用いた定量的評価と構造化データの実装例

6‑1. 画像最適化と CDN 設定

  • 効果:Netlify のエッジサーバーで自動的に画像を最適化・圧縮し、LCP(Largest Contentful Paint)を 1 秒以下に削減できるケースが多く報告されています【参考: Netlify Blog, 2024】。

6‑2. Lighthouse による測定フロー

  1. Deploy Preview の URL を Chrome DevTools → Lighthouse タブで計測
  2. 主な指標と改善ポイントをメモ(例:FCP > 1.5 s → 画像遅延ロードの導入)
  3. 必要に応じて nuxt.config.tshead セクションで meta タグ・構造化データを追加

6‑3. SEO 基本設定と JSON‑LD

  • ポイントtitleTemplate%s を入れるとページごとのタイトルが自動的に組み込まれ、検索エンジンへのインデックス品質が向上します。
  • JSON‑LD は Google が推奨する構造化データ形式で、サイト全体の認識を高めます。

まとめ

  1. Node 18+ と pnpm (corepack 推奨) を導入し、最新バージョン管理を自動化。
  2. pnpm create nuxt@latest でプロジェクトを生成し、VS Code の拡張機能で開発効率を最大化。
  3. 静的サイトは output: 'static'nuxi generate を用い、ISR は nitro.static.ttl で実装。
  4. Netlify デプロイは netlify.toml にビルドコマンド・SPA フォールバック・API リダイレクトを記載し、assetPrefix(=app.cdnURL)で CDN 配信を有効化。
  5. GitHub と連携すれば Deploy Preview が自動生成され、PR ごとに本番環境同等のプレビューが確認できる。
  6. 画像最適化・Lighthouse 計測・構造化データでパフォーマンスと SEO を総合的に強化すれば、ユーザー体験と検索エンジン評価の両方を高めた品質の高い静的サイトが完成します。

これらの手順を順に実施すれば、最新の Nuxt 3 と Netlify のベストプラクティスに沿った高速・安全な静的サイト を数分で構築できるはずです。ぜひ試してみてください!

スポンサードリンク

-Nuxt.js