2020-08-08
vuetify-loader@1.6.0 が laravel-mix でコケたときの対処法
発生した問題
vuetify-loader
が^1.6.0
の場合に、laravel-mix
による js ファイルのビルドに失敗する。^1.5.0
,^1.4.0
では問題なく動作する。
error message
\node_modules\webpack-cli\bin\cli.js:281
throw err;
^
Error: [VueLoaderPlugin Error] vue-loader 15 currently does not support vue rules with oneOf.
at VueLoaderPlugin.apply (node_modules\vue-loader\lib\plugin-webpack4.js:46:13)
at webpack (node_modules\webpack\lib\webpack.js:51:13)
at processOptions (node_modules\webpack-cli\bin\cli.js:272:16)
// 省略
バージョン
vuetify-loader: ^1.6.0
laravel-mix: ^5.0.4
対処法
laravel-mix の mix.webpackConfig()
を利用せず、mix.extend()
によりカスタム関数を実装し、設定の適応方法を変更する。
NG
webpack.mix.js
mix.webpackConfig({
plugins: [new VuetifyLoaderPlugin()],
// ...
});
OK
webpack.mix.js
const webpackConfigVuetify = class {
webpackConfig(config) {
config.plugins.push(new VuetifyLoaderPlugin());
// ...
}
};
mix.extend('vuetify', new webpackConfigVuetify());
mix.vuetify();
備考
laravel-mix
の mix.webpackConfig()
が、デフォルトの設定よりも先にマージされてしまっており、適用される webpackConfig でエラーが起こるようです。