一行要約。
Vue Devtool の standalone 版でインターセプトすれば良い。
環境は Windows10 だが、OSを問わない解決法。
なんなら React の react-devtools
も同じ方法で解決するはず。
はじめに Tauri の宣伝
皆さん Tauri
をご存知ですか?
超意訳すると超軽量版 Electron です。
RC版が出たと騒がれていたので触ってみると、まさに私が求めていたもの!
正直、これからのデスクトップ向けアプリはこれでいいのでは?(Web屋さんの感想)
と思うほどでした。
とにかく軽量なのが偉い。
Rustという言語が取っつきにくい場合、ブラウザの世界でコードを書くことも可能ではあるので、ぜひお試しあれ。
electron はビルド周りがゴチャっとしてて、生成ファイルが大きすぎるのが、個人的バットポイント。
Vue Devtool が使えない!
Windows での Tauri は、WebView2
という内部ブラウザを使用してレンダリングします。
これが曲者で、拡張機能が使用できない...
つまり Vue 開発の味方 Vue Devtools
が使えないのです;;
(知らない方は損しすぎなので、とりあえずDL!)
拡張機能の議論はこのあたり。
あんまり乗せる気は無さそう...Add Ons or Extensions with WebView2 · Issue #98 · MicrosoftEdge/WebView2Feedback
https://github.com/MicrosoftEdge/WebView2Feedback/issues/98
色々検索しても対策がヒットせず、途方に暮れて拡張機能のDocに迷い込みました。
すると standalone
版があるではないですか!
きたこれ!
(昔こんなの無かった気がするんだが??)
standalone Vue Devtools
とりあえずグローバルに yarn でインストールする。
npm マンは npm install
に読み替えて。
# グローバルにインストール
$ yarn add --global -D @vue/devtools
# 起動
$ yarn vue-devtools
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F105139%2F87276548-e354-5fa6-431e-d9cf09e1705f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=cff0eb36a06b476e57970607b57f2845)
なんか出てきた。
<script src="http://localhost:8098"></script>
を埋め込めとおっしゃっている。
Vue の場合
index.html
に script を埋め込む。
<!DOCTYPE html>
<html lang="en">
<head>
...
<title>Vite App</title>
<script src="http://localhost:8098"></script>
</head>
...
Nuxt3 の場合
nuxt.config.ts
に script を埋め込む。
&&
演算を使って、production のときだけコードを記載するようにする。
2でも似たような感じで。
const isProduct = process.env.NODE_ENV === 'production'
export default defineNuxtConfig({
...
app: {
head: {
script: [
!isProduct && { src: 'http://localhost:8098' },
],
},
},
}
多分どこに埋め込んでも問題ないので、いい感じにやればOK。
その後 $ yarn tauri dev
でアプリを起動すると。。。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F105139%2F8573fa75-358a-a61c-419b-073cb0b27548.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=bb9a2295909e08691cf4166d84e6e036)
!!!
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F105139%2F30ea2b30-eb37-1079-1d1d-b32a8ec84111.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f290bac0b3dee74f2747efacf93b3813)
!!!!!
おわりに
リリース時にはこのコードが載らないようにしましょう!!!
そのまま残したら立派なセキュリティホールです。
process.env.NODE_ENV
を使って、開発モードが production ではない時だけ埋め込むのが賢そう。
良き Tauri Vue ライフを🙌