LaravelとNuxt.jsを同一レポジトリで管理するときの構成
Contents
最近新しいプロジェクトにて、Laravel + Nuxt.jsの構成でアプリケーションを作成し始めたので、その構成を簡単にまとめてみます。
環境のスペック
Laravel
- 5.5
Vue.js
- ^2.1.10
Nuxt.js
- ^1.0.0-rc11
Laravelのインストール
まずは、基軸となるLaravelのインストールから。 composerが入っていれば下記コマンドを実行するだけです。
|
|
環境の設定
Laravelではデフォルトで、Vue.jsをサポートしていますが、デフォルトで入っている.vueファイルは、Nuxt.js仕様にはなっていないので、不要なディレクトリを削除します。 また、デフォルトで入っているpackage.jsonも不要なので削除します。
|
|
Nuxt.jsのインストール
つぎに同じディレクトリにNuxt.jsを導入します。 インストール自体は下記で完了します。
|
|
環境の設定
Nuxt.jsはデフォルトだと、同一ディレクトリにファイルを展開してしまい、Laravelのディレクトリ構成と被ると可視性が下がるため、ディレクトリを切ってその中にファイルを展開します。
今回はディレクトリ名をclient
とし、作成してみます。
まず、Nuxt.jsでの設定ファイルであるnuxt.config.js
を作成し、その中に下記の設定を書きます。
|
|
次に、Nuxt.jsが提供しているディレクトリを作成していきます。
|
|
まず挙動確認のため、pagesにファイルを作成します
/client/pages/index.vue
|
|
起動の確認
Laravel側とNuxt.js側で下記のコマンドを実行することで、アプリケーションを立ち上げる事ができます。
|
|
http://localhost:3000 にアクセスすると、HelloWorldが出ていることを確認できるかと思います。
Laravelとの通信
今回はLarvelとaxiosを使って通信してみます。
Laravel 側
Laravel側ではまず、簡単なエンドポイントを作成してみます。
route/api.php
|
|
Nuxt.js側
Nuxt.jsにはモジュールというものがあり、nuxt-communityには便利なモジュールが提供されています。 その中にaxios-moduleがあるので、そちらを使ってみましょう。
|
|
モジュールの追加にはnuxt.config.jsへの追加が必要です。
|
|
次に先程作成したindex.vueを下記のように変更します
client/pages/index.vue
|
|
これで、APIと連携できるようになりました。
まとめ
Laravel,Nuxt.jsを使うことで、簡単にクラサバの構成を実装できるようになりました。 次回以降はそれぞれの機能を使った、より深い実装について書いてみようかと思います。
Author kotamat
LastMod 2019-11-04 (2c6b62d)