npm, yarnのインストール
sudo yum install -y nodejs gcc-c++ make curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo sudo yum install -y yarn
Laravelにはpackage.jsonとして、npm installでvueがインストールされるようになっています。
$ cat ./laravel/package.json { "private": true, "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { "axios": "^0.18", "bootstrap": "^4.1.0", "cross-env": "^5.1", "jquery": "^3.2", "laravel-mix": "^4.0.7", "lodash": "^4.17.5", "popper.js": "^1.12", "resolve-url-loader": "^2.3.1", "sass": "^1.15.2", "sass-loader": "^7.1.0", "vue": "^2.5.17" } }
npmコマンドでvue, その他をインストール
$ cd ./laravel/ $ npm install
npm起動します。
$ npm run dev
app.jsの確認
$ ls $APP_PATH/resources/js app.js bootstrap.js components
生成されています。
welcome.blade.phpにvueコンポーネントを表示させようとします。
$ vi $APP_PATH/resources/views/welcome.blade.php <!doctype html> <html lang="{{ app()->getLocale() }}"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> <link href="{{ mix('css/app.css') }}" rel="stylesheet" type="text/css"> </head> <body> <!-- コンポーネントの配置 --> <div id="app"> <example-component></example-component> </div> <script src="{{ mix('js/app.js') }}"></script> </body> </html>
<div id="app"> <コンポーネント名></コンポーネント名> </div>
スクリプトの読み込みはこれ
<script src="{{ mix('js/app.js') }}"></script>
これでjs/app.jsを読み込みます。
ExampleComponent.vueが作成されているので確認
$ cat $APP_PATH/resources/js/components/ExampleComponent.vue <template> <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">Example Component</div> <div class="card-body"> I'm an example component. </div> </div> </div> </div> </div> </template> <script> export default { mounted() { console.log('Component mounted.') } } </script>
ルーティング設定
$ vi $APP_PATH/routes/web.php // Vueテスト Route::get('/test', function () { return view('welcome'); });
http://IPアドレス/test