どうも、こうすけ(@kosuke_upd)です。
今回は、Nuxt.js 入門として、Nuxt.js とは何か、ゼロからプロジェクトを作成するまでの手順、各ディレクトリの役割、デプロイしてアプリケーションを公開する方法などについて解説します。
これから Nuxt.js を触っていく人に向けて、Nuxt.js とはどんなものか、まずはじめに何をすれば良いのかということをお伝えしていきます。では早速順番に見ていきましょう。
Nuxt.js とは

Nuxt.js とは、Vue.js アプリケーションを作成するためのフレームワークであり、Vue.js 開発者がより早く簡単に開発を行えるようにすることを目的に作られたフレームワークです。
Nuxt.js では、ユニバーサルアプリケーション (様々なデバイスに対応するアプリケーション)、静的アプリケーション、SPA (シングルページアプリケーション) の中から状況に応じて作りたいアプリケーションの種類を選択することができます。
主な機能として、SSR (サーバーサイドレンダリング)、静的ファイル配信、メタタグの管理、コードの自動分割、ルーティングの自動生成などの機能が備わっています。
詳細は公式ドキュメントを見たほうが早いので、気になる場合はこちらのページをご覧ください。
参考 Nuxt.js とは何か?Nuxt.jsNuxt.js でプロジェクトを作成
では実際に Nuxt.js を用いてプロジェクトを作成していきましょう。
準備: npx または yarn のインストール
Nuxt.js をインストールするには、npx または yarn が必要なので、もしこれらをインストールしていない場合は先にインストールしておきましょう。
下記コマンドにより、npx や yarn がインストールされているか確認できます。バージョン確認用コマンドなので、バージョンが表示されたらインストールされているということです。
npx の場合
$ npx -vyarn の場合
$ yarn -vもしインストールされていない場合は、下記ページを参考にインストールしておきましょう。
npx のインストールについて
npx は npm 5.2.0 からデフォルトでバンドルされているため、最新の npm をインストールすることで npx を自動的にインストールできます。
下記ボタンの遷移先ページでも npm のインストール方法が書かれていますが、結果的に npx もインストールしていることとなるためご安心ください。
手順1. Nuxt.js をインストールしプロジェクトを作成
では、Nuxt.js をインストールし、プロジェクトを作成しましょう。下記コマンドを実行します。
※プロジェクト名の箇所は必要に応じて変更してください。
npx の場合
$ npx create-nuxt-app nuxt-project-sampleyarn の場合
$ yarn create nuxt-app nuxt-project-sampleするといくつか質問されます。順番に見ていきましょう。
質問1
? Project name (nuxt-project-sample)プロジェクトの名前を入力します。必要に応じて変更しましょう。
質問2
? Project description (My posh Nuxt.js project)プロジェクトの説明文を入力します。必要に応じて変更しましょう。
質問3
? Use a custom server framework
❯ none
express
koa
adonis
hapi
feathers
micro
fastifyサーバーサイドのフレームワークを選択します。「none」を選択すると、Nuxt.js のデフォルトサーバーになります。
質問4
? Choose features to install
❯◯ Progressive Web App (PWA) Support
◯ Linter / Formatter
◯ Prettier
◯ Axiosプロジェクトにインストールしたい機能を選択します。複数選択が可能です。
質問5
? Use a custom UI framework
❯ none
bootstrap
vuetify
bulma
tailwind
element-ui
buefy
ant-design-vue
iview
tachyons使用したい UI フレームワークを選択します。
質問6
? Use a custom test framework
❯ none
jest
ava使用したいテスティングフレームワークを選択します。
質問7
? Choose rendering mode
❯ Universal
Single Page AppNuxt.js のレンダリングモードを選択します。
質問8
? Author name作者名を入力します。必要に応じて変更しましょう。
質問9
? Choose a package manager
❯ npm
yarnパッケージマネージャを選択します。
すべての質問に答えると、プロジェクトディレクトリが作られ、その中に様々なファイルが生成されます。Nuxt.js のインストールとプロジェクトの作成は完了です。
手順2. プロジェクトを起動する
では、プロジェクトを起動し、雛形ページをブラウザで確認してみましょう。
まずは下記コマンドを実行することでプロジェクトが起動しましょう。インストールしたパッケージマネージャによって若干コマンドが異なります。
※プロジェクトディレクトリ名の部分は必要に応じて変更してください。
npm の場合
$ cd nuxt-project-sample
$ npm run devyarn の場合
$ cd nuxt-project-sample
$ yarn devそして、ブラウザで http://localhost:3000 にアクセスし雛形ページを確認してみましょう。
下画像のような雛形ページが表示されたらプロジェクトの基盤の作成は完了です。あとは好きなように開発していきましょう。

Nuxt.js のディレクトリ構成
次は、Nuxt.js で作成したプロジェクトのディレクトリ構成について説明します。全体のディレクトリ構成は下記のようになっていると思います。
※Nuxt.js インストール時の質問への回答によって若干異なることがあります。
ディレクトリ構成
./nuxt-project-sample
├── .editorconfig
├── .git
├── .gitignore
├── .nuxt
├── README.md
├── assets
├── components
├── layouts
├── middleware
├── node_modules
├── nuxt.config.js
├── package-lock.json
├── package.json
├── pages
├── plugins
├── static
└── store各主要ディレクトリについて説明します。
assets ディレクトリ
assets ディレクトリでは、 Stylus, Sass, LESS, Image, Font などのコンパイルされていないファイルを管理します。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
components ディレクトリ
components ディレクトリでは、Vue.js コンポーネントを管理します。このコンポーネントでは、asyncData や fetch を使用することはできません。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
layouts ディレクトリ
layouts ディレクトリでは、アプリケーションのレイアウト用ファイルを管理します。サイドバーを含めるかどうか、モバイルとデスクトップで異なるレイアウトを使用するかどうかといった操作を行います。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
middleware ディレクトリ
middleware ディレクトリでは、アプリケーションのミドルウェアを管理します。ページやレイアウトをレンダリングする前に実行したいカスタム関数を定義します。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
pages ディレクトリ
pages ディレクトリでは、アプリケーションのビューファイル、ルーティングファイルを管理します。Nuxt.js では、このディレクトリ内のすべての *.vue ファイルを読み込み、自動的にアプリケーションのルーターを生成します。
plugins ディレクトリ
plugins ディレクトリでは、ルートの Vue.js アプリケーションをインスタンス化する前に実行したい JavaScript プラグインを管理します。自前のライブラリや外部モジュールを使用する際には、このディレクトリ内のファイルで操作します。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
static ディレクトリ
static ディレクトリでは、直接サーバーのルートに配置され、変更される可能性の低いファイルを管理します。例えば favicon.ico や robots.txt などが該当します。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
store ディレクトリ
store ディレクトリでは、状態管理をしてくれる Vuex ストアのファイルを管理します。Nuxt.js では、デフォルトでは Vuex ストアは無効になっていますが、このディレクトリに index.js ファイルを作成することで有効になります。
このディレクトリは必須ではないため、もし不要であれば削除しても構いません。
nuxt.config.js ファイル
nuxt.config.js ファイルでは、Nuxt.js のカスタム設定を行います。
基本的な4つのコマンド
次は、Nuxt.js による開発で使用する基本的な4つのコマンドを紹介します。
コマンド1. nuxt
nuxt コマンドを実行すると、開発サーバーを localhost:3000 で起動します。このサーバーはホットリローディングするため、開発中に変更を保存するだけで自動的に画面が再描画されます。
このコマンドを使用する場合は、ターミナルで下記のように入力して実行します。
npm の場合
$ npm run devyarn の場合
$ yarn devコマンド2. nuxt build
nuxt build コマンドを実行すると、アプリケーションを Webpack でビルドし、JS と CSS をプロダクション向けにミニファイします。
このコマンドを使用する場合は、ターミナルで下記のように入力して実行します。
npm の場合
$ npm run buildyarn の場合
$ yarn buildコマンド3. nuxt start
nuxt start コマンドを実行すると、プロダクションモードでサーバーを起動します。nuxt start コマンドは、nuxt build コマンド実行後に実行する必要があります。
コマンド実行後にブラウザで localhost:3000 にアクセスすることで、プロダクションモードのアプリケーションを見ることができます。
このコマンドを使用する場合は、ターミナルで下記のように入力して実行します。
npm の場合
$ npm run startyarn の場合
$ yarn startコマンド4. nuxt generate
nuxt generate コマンドを実行すると、アプリケーションをビルドされ、ルートごとに HTML ファイルが生成されます。このコマンドは静的ファイルのホスティングに使用します。
このコマンドを実行すると、プロジェクトディレクトリ直下に dist フォルダが生成されるので、このフォルダをホスティングサービスにデプロイするなどして使用します。
このコマンドを使用する場合は、ターミナルで下記のように入力して実行します。
npm の場合
$ npm run generateyarn の場合
$ yarn generateアプリケーションをデプロイして公開
最後に、作成したアプリケーションをデプロイして公開する方法を紹介します。
GitHub Pages にデプロイする場合はこちらを参考にしてみてください。
Nuxt.js プロジェクトを GitHub Pages にデプロイする超簡単な方法
Heroku にデプロイする場合はこちらを参考にしてみてください。
Nuxt.js プロジェクトを Heroku にデプロイして公開する方法
Netlify にデプロイする場合はこちらを参考にしてみてください。
Nuxt.js プロジェクトを Netlify にデプロイして公開する方法
Firebase Hosting にデプロイする場合はこちらを参考にしてみてください。
Nuxt.js プロジェクトを Firebase Hosting にデプロイして公開する方法
最後に
今回は、Nuxt.js 入門として、Nuxt.js とは何か、Nuxt.js によるプロジェクトの作成方法、Nuxt.js で生成したプロジェクトのディレクトリ構成やコマンドなどについて解説しました。
Nuxt.js を使用することで、簡単に素早くアプリケーションを開発できるので、ぜひ使ってみてください。
\ 記事が良かったらシェア! /

