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

