main.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router, {initMainRouter} from './router'
  4. import './style/index.scss'
  5. import 'virtual:svg-icons-register' // 【svg-icons相关】
  6. import initComponent from '@/plugins/initComponent'
  7. import initProperties from '@/plugins/initProperties'
  8. import repeatFileValid from '@/plugins/repeatFileValid'
  9. import initDirect from '@/plugins/initDirect'
  10. import 'default-passive-events'
  11. import './browerPatch'
  12. import { createPinia } from 'pinia'
  13. import ElementPlus, {ElNotification} from 'element-plus'
  14. import 'element-plus/dist/index.css'
  15. // repeatFileValid()
  16. await initMainRouter() // 路由挂载前初始化路由表
  17. const app = createApp(App)
  18. app.config.errorHandler = (err: any, instance, info) => {
  19. console.error(err)
  20. const path = instance?.$options.__file
  21. ElNotification({
  22. duration: 0,
  23. title: `系统异常(${path?.match(/sea-warning-web(.*)/)?.[1] || path})`,
  24. message: err.stack,
  25. type: 'error',
  26. })
  27. };
  28. app.use(createPinia())
  29. await initProperties(app)
  30. initComponent(app)
  31. app.use(initDirect)
  32. app.use(router)
  33. app.use(ElementPlus as any)
  34. app.mount('#app')
  35. // 设置为 true 以在浏览器开发工具的 performance/timeline 面板中启用对组件初始化、编译、渲染和更新的性能追踪。
  36. app.config.performance = true