【RailsとNuxt.jsの共存】Rails上にNuxt.jsのプロジェクトを構築しよう
  • 2019.08.19に公開
  • 2019.10.12に更新
  • SPA開発
  • 4. RailsとNuxt.jsを共存させる
  • No.1 / 4
「SPA開発」では、Nuxt.js v2.14未満が使用されています。 Nuxt.jsはv2.13~14で大きなバージョンアップがありました。それに伴い、書き方も大きく変化しています。 v2.14以上で書かれた「SPA開発」の続編は、カテゴリー「 Udemy 」 で公開しています。

今回達成すること

今回はRailsプロジェクト上に、Nuxt.jsのプロジェクトを作成するところまでを行います。

ディレクトリの構成

今回のアプリケーションでは、Rails上にNuxtプロジェクトを作成し、1つのプロジェクトとして運用していきます。

RailsのpublicディレクトリにNuxtが出力したコンテンツを保管、表示します。

ディレクトリの構成は以下のようになります。

railsプロジェクト名
	L app
	L bin
	L config
	L db
	L frontend(Nuxtプロジェクト)
		L assets
		L components
		.....
	.....
	L public(Nuxtから出力されたコンテンツが保管される)

gitのブランチを作成し移動する

ターミナルでRailsアプリのルートディレクトリに移動します。

ディレクトリパスは自身の環境に合わせてください。

$ cd rails/myapp8/

gitの新しいブランチを作成し移動します。

checkout -bコマンドは、ブランチを新たに作成して移動まで行うコマンドです。

$ git checkout -b nuxt_new_project

移動できたか確認しておきましょう。

米印がついているブランチが現在のブランチです。

$ git branch

  master
* nuxt_new_project

RailsにNuxtプロジェクトを作成する

それではNuxtプロジェクトを作成していきましょう。

まだNuxtを動かす環境を構築していない場合は、こちらの記事を参考にしてください。

Nuxt.jsを動かす環境を構築する

Nuxtプロジェクトを作成

Nuxtのプロジェクトを作成する、yarnコマンドを実行します。

プロジェクト名は「frontend」としましょう。

$ yarn create nuxt-app frontend

色々と質問されますので一つ一つ答えていきましょう。

もし答えを間違った場合は、「Contorl」 + 「C」でキャンセルできます。

質問1. プロジェクト名は?

frontendのままでOKです。そのままEnterキーを押してください。

? Project name (frontend)

質問2. プロジェクトの説明は?

このままでOKです。Enterキーで次へ進みます。

? Project description (My swell Nuxt.js project)

質問3. プロジェクトの製作者は?

これもEnterで次へ。

? Author name (andou) 

質問4. パッケージマネージャーは何にする?

矢印キーで選択できます。

今回はYarnを使っていきましょう。

Yarnに矢印を合わせてEnterを押します。

? Choose the package manager (Use arrow keys)
❯ Yarn 
  Npm 

質問5. UIフレームワークは?

UIフレームワークを導入するか聞かれます。

のちにVuetifyを導入しますので、今はNone(導入しない)を選択します。

ここでVuetify導入すると、初期設定によりassetsディレクトリにapp.stylなどの.stylファイルが作成されますが、このファイルが原因でherokuデプロイの際にエラーが出ました。
今回はプロジェクト作成後にVuetifyモジュールを導入し、自分で初期設定を行っていくことにします。

? Choose UI framework (Use arrow keys)
❯ None 
  Ant Design Vue 
  Bootstrap Vue 
  Buefy 
  Bulma 
  Element 
  Framevuerk 
  iView 
  Tachyons 
  Tailwind CSS 
(Move up and down to reveal more choices)

質問6. サーバーフレームワークは?

サーバーフレームワークを導入するか聞かれます。

None(導入しない)を選択します。

? Choose custom server framework (Use arrow keys)
❯ None (Recommended) 
  AdonisJs 
  Express 
  Fastify 
  Feathers 
  hapi 
  Koa 
  Micro 

質問7. HTTP通信モジュールは?

HTTP通信をするモジュールを導入するか聞かれます。

Railsが吐き出したJSONデータを、Nuxt側で取得するためのツールです。

今回はAxiosを導入しますので、矢印がついた状態でスペースキーを押し、●がついたらEnterキーで次へ進みます。

? Choose Nuxt.js modules (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◯ Axios
 ◯ Progressive Web App (PWA) Support

質問8. lintツールは?

コードをチェック整形するためのlintツールを導入するか聞かれます。

ESlintを導入します。

スペースキーで選択し、●がついたらEnterキーを押します。

? Choose linting tools (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◯ ESLint
 ◯ Prettier
 ◯ Lint staged files

質問9. テストフレームワークは?

テストフレームワークを導入するか聞かれます。

導入しませんので、矢印をNoneに合わせEnterを押してください。

? Choose test framework (Use arrow keys)
❯ None 
  Jest 
  AVA 

質問10. Nuxtのモードは?

Nuxtのモードを聞かれます。

Single Page Appに矢印を合わせてEnterキーを押してください。

? Choose rendering mode 
  Universal (SSR) 
❯ Single Page App 

Nuxtプロジェクトの確認

Nuxtプロジェクトが作成できたか確認しましょう。

Railsプロジェクトに「frontend」ディレクトリができていれば成功です。(赤い四角で囲っているのがNuxtプロジェクト一式です)

画像はAtomエディタで表示しています。
Atomエディタを導入していない場合はmacのFinderアプリで確認してください。

2019-07-31 18-04-34

Nuxtの起動確認

実際にNuxt.jsを起動してみましょう。

Nuxtプロジェクトに移動してください。

$ cd frontebd

nuxtを起動します。

$ yarn dev

"http://localhost:3000/"に以下のような画面が出てこれば成功です。

2019-08-19 01-30-14

コミットしとく

Nuxtプロジェクトの確認が取れたらコミットしておきましょう。

$ git add -A
$ git commit -m "create_nuxt_project"

次回予告

これでRails上にNuxtプロジェクトを作成することができました。

次回は、Railsが吐き出したJSONデータをNuxtで表示するための設定を行っていきます。

あなたの力になれること
私自身が独学でプログラミングを勉強してきたので、一人で学び続ける苦しみは痛いほど分かります。そこで、当時の私がこんなのあったら良いのにな、と思っていたサービスを立ち上げました。周りに質問できる人がいない、答えの調べ方が分からない、ここを聞きたいだけなのにスクールは高額すぎる。そんな方に向けた単発・短期間メンターサービスを行っています。
独学プログラマのサービス
SPA開発の投稿
1
  • 更新情報
  • /
  • #01
「Rails apiとNuxt.jsでSPA開発」のデモアプリを開発中...。【2020/05/19追記: このカテゴリーの更新を一旦終了といたします】
1
  • 今回作るアプリケーション
  • /
  • #01
Railsアプリの完成イメージ画像と作ろうと思った経緯
2
  • 今回作るアプリケーション
  • /
  • #02
今回作るRailsアプリの全体像と機能の整理
1
  • 開発環境を整える
  • /
  • #01
macにRailsをゼロからインストールする
2
  • 開発環境を整える
  • /
  • #02
Rails apiモードのプロジェクトを作成し、Gitにコミットする
3
  • 開発環境を整える
  • /
  • #03
Bitbucketに公開鍵を追加し、Railsプロジェクトをpushする
4
  • 開発環境を整える
  • /
  • #04
HerokuCLIのインストールとherokuアプリケーションの作成
1
  • RailsをHerokuにデプロイする
  • /
  • #01
Herokuのデータベース設定と開発に便利なgemを導入する
2
  • RailsをHerokuにデプロイする
  • /
  • #02
HerokuにPumaを導入するためのRailsセットアップ
3
  • RailsをHerokuにデプロイする
  • /
  • #03
Railsに"Hello"を表示してHerokuへデプロイする
1
  • RailsとNuxt.jsを共存させる
  • /
  • #01
【RailsとNuxt.jsの共存】Rails上にNuxt.jsのプロジェクトを構築しよう
2
  • RailsとNuxt.jsを共存させる
  • /
  • #02
Nuxt.jsからRailsへ、初めてのapi通信でHelloを表示しよう
3
  • RailsとNuxt.jsを共存させる
  • /
  • #03
Nuxt.jsにVuetify2.0を導入してFont Awesomeもインストールするぜ
4
  • RailsとNuxt.jsを共存させる
  • /
  • #04
初めてのRailsApiアプリの公開。Herokuにデプロイする準備と実際のデプロイまで
1
  • データベース設計
  • /
  • #01
データベースを正規化する前に、会計システムの勘定科目データを整理する
2
  • データベース設計
  • /
  • #02
会計システムのデータベース設計に挑む
1
  • バージョンアップ情報
  • /
  • #01
【ご報告】Nuxt.jsを2.10.2にバージョンアップしました
2
  • バージョンアップ情報
  • /
  • #02
【ご報告】Railsを6.0.0にバージョンアップしました
1
  • Userモデル開発
  • /
  • #01
本番環境と開発環境でRailsのSeedデータを切り替える
2
  • Userモデル開発
  • /
  • #02
Railsにユーザーテーブルを作成する【テーブル確認コマンド】
3
  • Userモデル開発
  • /
  • #03
【Rails】EachValidatorクラスを使ったEmailカスタムバリデーション【lib以下読み込み】
4
  • Userモデル開発
  • /
  • #04
【Rails】エラーメッセージの日本語化【i18nとja.ymlのセッティング】
5
  • Userモデル開発
  • /
  • #05
【Rails】開発・テスト・本番環境の全てにユーザーSeedデータ投入する
6
  • Userモデル開発
  • /
  • #06
【Rails】ユーザーモデルのバリデーションをテストする
1
  • ログイン周りのレイアウト設計
  • /
  • #01
【Nuxt.js】ログインフラグでレイアウトを切り替えるテクニック【2019/12/07追記あり】
2
  • ログイン周りのレイアウト設計
  • /
  • #02
【Nuxt.js】ウェルカムページのレイアウト構築【sassの導入】
3
  • ログイン周りのレイアウト設計
  • /
  • #03
【Nuxt.js】ログイン周りの入力フォームコンポーネント設計【2019/12/07追記あり】
4
  • ログイン周りのレイアウト設計
  • /
  • #04
【Nuxt.js】会員登録フォームを構築してサインアップページを完成させる
独学プログラマ
独学でも、ここまでできるってよ。
CONTACT
Nuxt.js制作のご依頼は下記メールアドレスまでお送りください。