2020-03-27
laravel-mix + vuetify-loader で Laravel に Vue + Vuetify の環境を作る
vuetify-loader とは
webpack で vuetify のコンポーネントセットをロードするためのモジュールです。
環境
- Laravel 7系を想定していますが、6系でも
laravel-mix
のバージョンが新しいものであれば問題なく動くと思います。 - Vue は既に入っている前提です。(Laravel なら
npm install
叩くだけです)
1. 必要なモジュールを入れる
bash
npm install -D vuetify vuetify-loader sass sass-loader fibers deepmerge
# material design icons を利用する場合
npm install -D @mdi/font
2. 以下の内容で webpack.config.js
をプロジェクトルートに置く
本記事ではプロジェクトルートは ./
としています
./webpack.config.js
const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin');
module.exports = {
plugins: [new VuetifyLoaderPlugin()],
};
3. webpack.mix.js
を書き換える
./webpack.mix.js
const mix = require('laravel-mix');
const webpack = require('./webpack.config');
mix
.webpackConfig(Object.assign(webpack))
.js('resources/js/app.js', 'public/js');
// 必要に応じて CSS も
// .css('resources/css/app.css', 'public/css')
4. Vuetify の読み込み設定ファイルを書く
./resources/js/vuetify/index.js
import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import colors from 'vuetify/lib/util/colors';
// mdiを利用する場合
// import '@mdi/font/css/materialdesignicons.css';
Vue.use(Vuetify);
const opts = {
// mdiを利用する場合
// icons: {
// iconfont: 'mdi',
// },
};
export default new Vuetify(opts);
5. app.js
で上述した Vuetify を import
./resources/js/app.js
import Vue from 'vue';
import vuetify from './vuetify';
import App from './App.vue';
export default new Vue({
el: '#app',
vuetify,
components: { App },
template: '<App />',
});
6. ビルド
bash
npm run dev
これで正しくコンパイルされれば完了です。
vuetify-loader
のおかげで、いままで煩雑だった webpack の設定が不要になってます。ありがて~~