Laravel 5.4 +Vue.jsでコンポーネント開発する環境を整えるメモ(Stylusも使う版)


Laravelで、Vue.jsの親子コンポーネントを使える状態にする手順です。

「Laravelの基礎は分かるんだけど、急に仕事でVue.js使い始めたので、個人的に勉強したいけど、公式見ながら初めからやる余裕がない!」

もしくは、

ドットインストールとかで、vue.js自体は何となくわかったけど、実際LaravelでVue.jsを使う時は、コンポーネント開発が基本となるので、

「手っ取り早く、Laravel+Vue.jsでコンポーネント開発出来る状態にしたい」

人向けです。

Laravel5.4をインストールする。

composerを使用してインストールします。(composerは別途インストールする。)

プロジェクトを置きたいディレクトリ直下で、以下コマンドを実行する。

“vue_test”の部分は、プロジェクトのフォルダ名なので自分の好きな名前を記載する。

 

Vue.js、Sass、jQuery、Laravel Mix等を使う環境をインストールする

プロジェクトフォルダ直下にある「pacage.json」を確認する。

標準で、Vue.js、jQuery、Laravel Mixがインストールできるようになっているので、「npm install」を実行し、ライブラリをインストールする。

エラーとなる場合に確認すること

  • 事前にNode.jsをインストールしていること。
  • 事前にnpmがインストールされていること。
  • Node.jsとnpmのバージョンを上げる。

Node.jsとnpmのバージョンの組み合わせでエラーとなる事が多い。

自分が試した時は、以下のバージョンで成功。

他プロジェクトや仕事で使用するバージョンが決まっている時は、複数バージョンを管理(切替)できる状態にしておく。

  • Node.jsのバージョンを管理するライブラリ「n」→参考サイト

インストール完了したら、Vue.js、jQuery、Laravel Mix(Vue.jsや、Stylusのコンパイル等)の使用が可能となる。

 

Vue.jsのセットアップ

Vueの起動処理等は resources/assets/js/app.js に記述します。

resources/assets/js/app.js に、Vue.jsの初期化処理(ライブラリの読み込み)の記述があるので確認する。

これで、Vue.jsを使用することができます。

 

親コンポーネントを使用する。

まずは親コンポーネントの作成をします。

resources/assets/js/components/Example.vueは使わないのでParent.vueというファイル名でリネームします。

次に、resources/assets/js/components/Parent.vueを以下のように編集します。

app.jsにParentコンポーネントを登録します。

最後に、作成したvueファイルや、app.jsを一括でコンパイルします。コンパイルには以下のコマンドを実行します。

しかし、このまま、npm run devを実行すると、「Can’t resolve ‘stylus-loader’」エラーが出てしまいます。

今回は、CSSプリプロセッサとしてstylusを使いたいので、「webpack.mix.js」に追記する。

この記述を追加することで、Parent.vueでかいたstylusの内容も含めて「public/css/stylus.css」にコンパイルされるようになります。

★ひとまず、「resources/assets/stylus/app.styl」を空で良いので新規作成しておくこと。

再度、「npm run dev」をし、コンパイルが成功するか確認する。

成功すると、

public/js/app.js

public/css/app.css

public/css/stylus.css

にコンパイルされたjs、cssファイルが作成されるので、laravelのbladeで読み込めば、利用可能となります。

※「npm run dev」でこまめにコンパイルで確認するのが大変な場合、「npm run watch」を走らせておくと、vueファイルやJavaScript・CSSを保存した際に自動的にコンパイルが行われるので、実装ミスを早い段階で確認することができます。

 

Laravelのbladeで親コンポーネントを読み込む。

/resources/views/welcome.blade.phpを以下のように書き換えます

画面を表示する。

親コンポーネントが表示できたので、次に親コンポーネントに子コンポーネントを読み込ませます。

 

子コンポーネントを使用する。

resources/assets/js/components/Children.vueを作成します。

次に親コンポーネントに子コンポーネントを読み込ませます。

resources/assets/js/components/Parent.vue

画面を開きます。

子コンポーネントも表示されました。

後は、このサイトの「第2回 Vue.js基礎文法最速マスター」から、勉強などなど始めれば、スムーズに実務で使えるレベルになると思います。

 

 

 

 

この記事がお役に立てたら、是非シェアをお願いします^^