Vuetify.jsをインストールしたらvue-cliのサーバが起動しなくなった話


症状

Vuetify.jsのクイックスタートにしたがってvue-cliでVuetify.jsをインストールしてから開発サーバを起動したらエラーが発生して起動できませんでした。Vuetify.jsを導入してない段階では起動します。Windows, Mac両方で試しても同じようなエラーが出力されたため、Vuetify.jsの特定のバージョンのバグであると思われます。
実際に実行したコマンドとエラーログは以下の通りです。

$ vue create vuetify-test
$ cd vuetify-test
$ vue add vuetify
$ npm run serve

> [email protected] serve /Users/netorokot/temp/vuetify-test
> vue-cli-service serve

 INFO  Starting development server...
 ERROR  TypeError: Cannot read property 'match' of undefined
TypeError: Cannot read property 'match' of undefined
    at VuetifyLoaderPlugin.apply (/Users/netorokot/temp/vuetify-test/node_modules/vuetify-loader/lib/plugin.js:28:29)
    at webpack (/Users/netorokot/temp/vuetify-test/node_modules/webpack/lib/webpack.js:51:13)
    at serve (/Users/netorokot/temp/vuetify-test/node_modules/@vue/cli-service/lib/commands/serve.js:161:22)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] serve: `vue-cli-service serve`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/netorokot/.npm/_logs/2019-11-23T13_34_16_291Z-debug.log

解決方法

stackoverflowに同じような問題を抱えている方がいました。

これによれば、プロジェクトディレクトリ内のnode_modules/vuetify-loader/lib/plugin.jsの6行目を以下のように変更すれば良いとのことです。

node_modules/vuetify-loader/lib/plugin.js
- this.options = options
+ this.options = options || {}

なお、このバグは9時間ほど前にissue #101にて取り上げられ、最新のリポジトリでは既に修正済みです。

修正コミット
https://github.com/vuetifyjs/vuetify-loader/commit/a8d064925b097924e2a75183f60f548a445cbae8

最後に

この1行に2時間近く吸われました。人生って辛いですね。