skip to content
私的歌詞倉庫

Vite + Vueで開発中に強制的にVue Devtoolsを表示

/ 3 min read

Updated:
Table of Contents

はじめに

最近はVue3対応に向けて奮闘しています。コードの補完がかなり効きやすくなっていい感じです!

そんな恩恵を感じつつVue3対応の一環でVuetify3のデバッグ中に気づいたのですが、developmentモードになっているのに、なぜかVue Devtools が動きませんでした。Vue Devtoolsには認識されているのですが、エラーメッセージを表示するだけでした。

Vue.js is detected on this page.
Devtools inspection is not available because it's in production mode or explicitly disabled by the author.

結局、根本原因は分かってないのですが、強制的に表示する方法を見つけたので、それについて紹介します。

ツールバージョン
vue3.3.7
vite-plugin-ruby5.0.0
vite5.0.5

VUE_PROD_DEVTOOLS****をtrueに設定

Vue2まではVue.config.devtoolstrueにすることで強制的にONにできましたが、Vue3からはオプション自体がなくなったみたいです。色々調べると、vite.config.tsでグローバル変数として__VUE_PROD_DEVTOOLS__trueを設定すると強制的に表示することができました。

単純に__VUE_PROD_DEVTOOLS__trueにするだけでもいいのですが、自分は本番ビルド時はオフにしたいのでmodeを使って分けるようにしてしました。このmodeはviteの条件付き設定という機能の一部です。

export default defineConfig(({ mode }) => {
return {
define: {
__VUE_PROD_DEVTOOLS__: mode === "development" ? true : false,
},
plugins: [
/* 色々設定 */
],
// 色々設定…
};
});

__VUE_PROD_DEVTOOLS__Bundler Build Feature Flagsという機能で**、**他にもOptions APIを無効にすることができるフラグもあります。

終わりに

根本原因は分かってないのですが、無理やりVue Devtoolsを表示することができました。個人開発のStarryKidsは普通にVue Devtoolsが動いているのが謎です…vite_rubyの影響か…?と思いつつも、それらしきIssueも見当たりませんでした。まぁ動いたのでよし!ということにしておきます。

参考文献