20
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel に Nuxt.js プロジェクトを入れたい

Posted at

Laravel に Nuxt.js プロジェクトを入れたい。

Nuxt.js の SSR は使わないものの、 Laravel の機能を API のみに閉じ込めて、完全に静的なクライアントで運用したいときなど。

生 Vue.js でも良いのだけど、置くだけ認識の Router/Vuex はかなり楽。

環境構築

$ laravel new myProject 
$ cd myProject 
$ vue init ~~~~~ myNuxt
$ mv myNuxt resouces/nuxt.js
$ rm package.json
$ mv resources/nuxt.js/package.json package.json
$ mv resources/nuxt.config.js nuxt.config.js

nuxt.config.js に次のような変更を

module.exports = {
  ....
  srcDir: "resources/nuxt.js/",
  ....
}

ひとまずコレで Nuxt が動くようになる。

Laravel APIを Proxy する

@nuxtjs/proxy を使って、 Laravel のAPIをProxy する。

$ npm i @nuxtjs/proxy

nuxt.config.js に次のような変更を

module.exports = {
  modules: [
    '@nuxtjs/proxy'
  ],
  proxy:{
    '/api' : "http://localhost:8000"
  }
}

php artisan serveで立てたサーバが /api パスのリクエストを受け取れるようになる。

ビルド設定

このままではビルドしても Nuxtアプリケーションしか立ち上がらない。

まずは、nuxt.js のstatic フォルダの中に Laravel の public フォルダの中身を全部ぶち込む

これでとりあえず、 Laravel のファイルが generate 時に dist の中に生成されるようになる。

server 側での公開パスも dist を設定してやると良い。

あとは apatch の設定。 generate するので問題ないかもしれないが 404 系を Laravel が受け取るような設定になっているはずなので、 そのへんは API でよしなにする。
(単純に index.html側に向けるとAPIが動かなくなるので注意)

index.html が index.php より優先されるように設定しないと、Laravel の Welcome page が表示されるのでそのへんも注意。

サブディレクトリでのホストが可能であれば、 generate を public/app の中に…みたいなことも出来るが、多分画像とかのパスの設定とかおかしくなりそう。

20
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?