minenaの部屋


Nuxt.jsでWebサイトを作ってみる


Nuxt.jsでWebサイトを作ってみるのイメージ

「Vue.jsでWebサイトを作るのは楽しい.でも,構成やルーティングが増えてくると面倒になるなあ」そう感じたことはありませんか?(・_・;)
そんなときに頼れるのが,Vueベースのフレームワーク「Nuxt.js」です.Nuxtを使えば,プロジェクト構成,ルーティング,自動ビルドなどが一括で扱えるため,開発の効率が格段にアップします.


Nuxt.jsとは?

Nuxt.jsは,Vue.jsをベースにしたアプリケーションフレームワークです.以下のような特徴があります:



SSRとは何か?

SSR(サーバーサイドレンダリング)とは,ユーザーのリクエストに応じて,サーバー側でHTMLを生成して返す仕組みです.検索エンジン対策(SEO)や初期表示の高速化が期待できます.

ただし,サーバー処理が必須となるため,静的なホスティング環境では扱いが難しいです.



今回は静的サイト構成(SSG)

本記事では,SSG(Static Site Generation)方式を採用します.これは事前にHTMLを生成し,静的にホスティングできるため,高速・安価・シンプルという利点があります.



開発環境を整える

Node.js(v18以上)をインストールした上で,以下を実行します:

npx nuxi init my-nuxt-app

ディレクトリが作成され,初期設定が自動生成されます.次に依存をインストールします:

cd my-nuxt-app
npm install

開発サーバーの起動:

npm run dev

http://localhost:3000 にアクセスすると初期画面が確認できます.



プロジェクト構成

my-nuxt-app/
├── app.vue
├── nuxt.config.ts
├── pages/
│   └── index.vue
├── components/
└── public/


app.vueとNuxtPage

<template>
  <NuxtPage />
</template>

全ページの表示を統括する重要なポイントです.共通ナビゲーションなどをここで記述可能です.



ページの追加

pages/about.vueを作成するだけで自動的に/aboutページが生成されます.

<template>
  <div>
    <h3>このサイトについて</h3>
    <p>これはNuxtで作成したWebサイトです.</p>
  </div>
</template>


コンポーネントの活用

<template>
  <Header />
  <main>
    <NuxtPage />
  </main>
</template>

<script setup>
import Header from '~/components/Header.vue'
</script>


静的ビルドと公開

以下のコマンドで静的HTMLを生成します:

npm run build
npm run generate

.output/public/配下に出力され,それをVercelやNetlifyへアップすればOKです.



GitHub Pages へのデプロイ

Nuxt.jsで生成した静的サイトを,無料で公開できるサービスのひとつが GitHub Pages です.ここでは,NuxtプロジェクトをGitHubにアップロードし,静的ファイルをPagesにホスティングする手順を紹介します.


1. GitHub リポジトリの作成

まず,GitHub上で新しいリポジトリを作成します.リポジトリ名は任意ですが,ユーザー名.github.io とすると,ルートドメインで公開されます.


2. プロジェクトを初期化し,リポジトリにプッシュ

git init
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git add .
git commit -m \"初回コミット\"
git push -u origin main

3. 静的サイトを生成

npm run generate

これで .output/public ディレクトリに静的ファイルが生成されます.


4. GitHub Pages 用ブランチに配置

GitHub Pages は通常 gh-pages ブランチや docs フォルダを使って公開されます.以下の手順で gh-pages ブランチに静的ファイルをアップします.

git checkout --orphan gh-pages
git reset --hard
cp -r .output/public/* ./
git add .
git commit -m \"deploy\"
git push origin gh-pages --force

もしくは,gh-pages パッケージを使って以下のように自動化もできます:

npm install --save-dev gh-pages
npx gh-pages -d .output/public

5. GitHub上でPagesを有効化

GitHubのリポジトリ設定画面にある「Pages」セクションで,ブランチとして gh-pages を選び,ルートを指定して保存すれば,数十秒後にサイトが公開されます.

公開URLは通常 https://ユーザー名.github.io/リポジトリ名/ の形式になります.


補足:Base URL の設定

サブディレクトリ(例:ユーザー名.github.io/nuxt-site/)でホスティングする場合は,Nuxtの設定でベースURLを指定する必要があります:

// nuxt.config.ts
    export default defineNuxtConfig({
      app: {
        baseURL: '/リポジトリ名/'
      }
    })

この設定を忘れると,CSSやルーティングが正しく動作しなくなるため注意が必要です.(;・∀・)


おわりに

Nuxt.jsを活用すれば,Vueの柔軟性を保ちながら効率よく静的サイトを構築できます.初めての方にもおすすめの構成です.(`・ω・´)


※この記事の内容は,2025年7月時点の情報に基づいています.
本コンテンツの作成時間(HTML/CSS/JavaScriptの設計・実装を含む):約6時間