schedule2020-12-11
Vue CLI Plugin Electron Builderでビルドしたアプリの画面がブランクになる
Vue + Electron + TypeScriptでアプリをつくるときのエラー対処。
Vue CLI Plugin Electron Builderを導入してビルドしたアプリを実行するとナビゲーションメニューを残して真っ白になった。 これの対処を残します。
環境
- Windows 10
- Node.js v14.15.0
- npm 6.14.8
- yarn 1.22.5
- @vue/cli 4.5.9
- vue-cli-plugin-electron-builder ~2.0.0-rc.5
Vue CLI Plugin Electron Builderでビルドしたアプリの画面がブランクになる
Vue CLI Plugin Electron BuilderのCommon Issuesに載ってました。
Vue Routerのヒストリーモードが原因です。
historyモードはページのリロード無しにURL遷移を実現するhistory.pushState
APIを使っています。
Electron では完全なURLをhashを使ってシミュレートするhashモードを使う必要がある。
/src/router/index.ts
を以下のように修正する。
If using Vue 2:
export default new Router({
- mode: 'history',
+ mode: process.env.IS_ELECTRON ? 'hash' : 'history',
})
If using Vue 3:
-- import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
++ import { createRouter, createWebHashHistory, createWebHistory, RouteRecordRaw } from "vue-router";
・・・省略
const router = createRouter({
-- history: createWebHistory(process.env.BASE_URL),
++ history: process.env.IS_ELECTRON
++ ? createWebHashHistory()
++ : createWebHistory(),
})
詳しくはVue RouterのHTML5 History モードを参照。
Reactに入門するよ
ReactTypeScriptschedule2021-12-12
【TypeScript】ジェネリックスな配列Array<T>を扱う関数を定義する
TypeScriptschedule2021-10-10
【TypeScript】Jestでdescribeなどの関数がnot findになってるのを解消する
TypeScriptテストエラー解消schedule2021-10-10
【TypeScript】JestでインポートしたモジュールがCannot find moduleとなるエラー
TypeScriptテストエラー解消schedule2021-10-10
【Electron】PCのスリープと起動イベントを検知する
ElectronNodejsJavaScriptTypeScriptschedule2021-09-06
axiosでリクエスト中の処理をキャンセルする
JavaScriptNodejsschedule2021-08-31
Electronでアプリの2重起動を防ぐためのコード
ElectronTypeScriptschedule2021-08-25