dev-sidecar/packages/gui/src/main.js

63 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import antd from 'ant-design-vue'
import Vue from 'vue'
import VueRouter from 'vue-router'
import { ipcRenderer } from 'electron'
import view from './view'
import App from './view/App.vue'
import DsContainer from './view/components/container'
import routes from './view/router'
import 'ant-design-vue/dist/antd.css'
import './view/style/index.scss'
import './view/style/theme/dark.scss' // 暗色主题
try {
Vue.config.productionTip = false
Vue.use(antd)
Vue.use(VueRouter)
Vue.component(DsContainer)
// 3. 创建 router 实例,然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new VueRouter({
routes, // (缩写) 相当于 routes: routes
})
const app = new Vue({
router,
render: h => h(App),
})
view.initApi(app).then(async (api) => {
// 初始化status
try {
await view.initPre(Vue, api)
app.$mount('#app')
view.initModules(app, router)
} catch (e) {
console.error('view初始化出现未知异常', e)
ipcRenderer.send('view初始化出现未知异常', e)
}
})
// fix vue-router NavigationDuplicated
const VueRouterPush = VueRouter.prototype.push
VueRouter.prototype.push = function push (location) {
return VueRouterPush.call(this, location).catch(err => err)
}
const VueRouterReplace = VueRouter.prototype.replace
VueRouter.prototype.replace = function replace (location) {
return VueRouterReplace.call(this, location).catch(err => err)
}
console.info('main.js finished')
ipcRenderer.send('main.js finished')
} catch (e) {
console.error('页面加载出现未知异常:', e)
ipcRenderer.send('[ERROR] 页面加载出现未知异常:', e)
}
try {
window.onerror = (message, source, lineno, colno, error) => {
ipcRenderer.send(`[ERROR] JavaScript脚本异常Error in ${source} at line ${lineno}: ${message}`, error)
}
} catch (e) {
console.error('监听 window.onerror 出现异常:', e)
}