0Pricing
Frontend Academy · レッスン

デプロイ:静的生成とSSR

nuxt generateで完全な静的サイトを生成し、SSRアプリをNodeサーバーまたはエッジランタイムにデプロイして、Nuxtのnitroエンジンを設定します。

「デプロイ:静的生成とSSR」はCoddyKit上の無料Frontend Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFrontend Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Frontend Academyコースには全4レッスンが含まれています。

Nuxtはどこでもレンダリングできます

Nuxt 3は4つのデプロイモードに対応しています。Static(nuxt generate)、SSR(Nodeサーバー)、Edge(Cloudflare Workers、Vercel Edge)、Hybrid(ルート単位)です。

静的デプロイ

nuxt generateはすべてのルートをHTMLファイルとして事前レンダリングします。.output/publicフォルダーをNetlify、Vercel、GitHub Pages、S3などの任意の静的ホストにデプロイします。

npm run generate
# .output/public/ contains:
# index.html, about/index.html, blog/post-1/index.html, ...

# Deploy:
npx wrangler pages deploy .output/public
# or
rsync -av .output/public/ user@host:/var/www/

動的ルートの生成

/blog/[slug]のようなルートでは、Nuxtがすべてのslugを把握する必要があります。設定のnitro.prerender.routesでslugを指定します。

// nuxt.config.ts
export default defineNuxtConfig({
  nitro: {
    prerender: {
      routes: ['/blog/post-1', '/blog/post-2', '/blog/post-3']
    }
  }
});

// Or auto-discover: Nitro follows links from /, generating any it finds.

NodeへのSSRデプロイ

nuxt buildはNitroサーバーを作成します。node .output/server/index.mjsを実行すれば、任意のNodeホスト(Render、Railway、Fly.io、自分のVPS)にデプロイできます。

npm run build
# .output/server/index.mjs is the Nitro server
# .output/public/ contains static assets

node .output/server/index.mjs # starts on PORT (default 3000)

Nitro — ユニバーサルサーバー

Nuxt 3のサーバーはNitroです。Node、Bun、Deno、Cloudflare Workers、Vercel、Netlify、AWS Lambdaなど、あらゆるランタイムを対象にできるポータブルなエンジンです。nitro.presetで対象を切り替えます。

エッジデプロイ(Cloudflare Workers)

プリセットをcloudflare-pagesまたはcloudflareに設定します。ビルドすると、Cloudflareのエッジで実行されるWorkerが出力されます。

// nuxt.config.ts
export default defineNuxtConfig({
  nitro: { preset: 'cloudflare-pages' }
});

// Build, then:
npx wrangler pages deploy ./dist

エッジデプロイ(Vercel Edge)

VercelはNuxtを自動検出し、適切なプリセットを使用します。Edge Runtimeを強制するには、preset: 'vercel-edge'を指定します。

ハイブリッドレンダリング

ルートごとに異なるレンダリング方式を選択できます。routeRulesで設定します。

// nuxt.config.ts
export default defineNuxtConfig({
  routeRules: {
    '/':           { prerender: true },        // SSG
    '/blog/**':    { isr: 60 },                // ISR every 60s
    '/dashboard/**': { ssr: false },           // SPA (client-only)
    '/admin/**':   { ssr: true }               // SSR (per-request)
  }
});

StaticとSSRの選択

Staticは、コンテンツの変更頻度が低く、最大速度と安価なCDNホスティングが重要な場合に適しています(ブログ、マーケティングサイト、ドキュメント)。SSRは、ユーザーごとのコンテンツ、動的データ、検索結果に適しています(ダッシュボード、ECサイト)。Hybridを使えば、ルートごとに組み合わせられます。

環境変数

nuxt.config.tsのruntimeConfigを使用します。publicはクライアントに公開され、それ以外はサーバー専用のままになります。

export default defineNuxtConfig({
  runtimeConfig: {
    apiSecret: '',         // server-only, set via NUXT_API_SECRET env
    public: {
      apiBase: 'https://api.example.com' // accessible client-side
    }
  }
});

// In a component:
const config = useRuntimeConfig();
console.log(config.public.apiBase);

CIでのビルドキャッシュ

CIの実行間で.nuxt/とnode_modules/をキャッシュすると、ビルドを高速化できます。VercelやNetlifyでは、これは自動的に行われます。

パフォーマンステスト

デプロイ後は、Lighthouseをlocalhostではなくデプロイ済みのURLに対して実行します。実際のCDN、実際のエッジロケーション、実際のCPUスロットリングを使って測定できるためです。

理解度チェック

すべてのルートを静的HTMLとして事前レンダリングし、NetlifyやCloudflare PagesなどのCDNにデプロイするためのNuxt 3コマンドはどれですか。

まとめ:Nuxtのデプロイ

nuxt generate → 静的(.output/publicをデプロイ)。nuxt build → SSR(Nodeでデプロイ)。NitroのプリセットはCloudflare、Vercel、Netlify、AWSなどを対象にできます。routeRulesでハイブリッドレンダリング(ルートごとのprerender、isr、ssr、spa)を設定します。runtimeConfigで環境変数を管理します(publicはクライアントに公開)。デプロイ済みのURLに対してLighthouseでテストします。

よくある質問

「デプロイ:静的生成とSSR」レッスンは無料ですか?

はい。「デプロイ:静的生成とSSR」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Frontend Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Frontend Academyコースには全4レッスンが含まれています。

「デプロイ:静的生成とSSR」で何を学びますか?

nuxt generateで完全な静的サイトを生成し、SSRアプリをNodeサーバーまたはエッジランタイムにデプロイして、Nuxtのnitroエンジンを設定します。 ブラウザで直接実行するハンズオンコードでFrontend Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Frontend Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFrontend Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「デプロイ:静的生成とSSR」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFrontend Academyレッスンでコードを書いて実行できますか?

はい。すべてのFrontend Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ファイルベースルーティングと自動インポート
  2. useFetchとuseAsyncData
  3. Nuxtモジュール:Image・Auth・i18n
  4. デプロイ:静的生成とSSR
← Frontend Academyに戻る