main.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router, { setupRouter } from '@/router'
  4. import { i18n } from '@/i18n'
  5. import { setupStore } from '@/store'
  6. import ArcoVue from '@arco-design/web-vue';
  7. import '@arco-design/web-vue/dist/arco.css';
  8. /* 其他模块引入 */
  9. import 'virtual:svg-icons-register'
  10. // 引入 Symbol icon图标
  11. import '@/assets/iconsvg/iconfont'
  12. import SvgIcon from '@/components/Svg-icon/SvgIcon.vue'
  13. // 额外引入图标库
  14. import ArcoVueIcon from '@arco-design/web-vue/es/icon'
  15. async function appInit() {
  16. const app = createApp(App)
  17. // 注入组件
  18. app.component('SvgIcon', SvgIcon)
  19. // 挂载状态管理
  20. await setupStore(app)
  21. // arco-design
  22. app.use(ArcoVue)
  23. app.use(ArcoVueIcon)
  24. app.use(i18n)
  25. window['$t'] = i18n.global.t
  26. // 挂载路由
  27. await setupRouter(app)
  28. // 路由准备就绪后挂载APP实例
  29. await router.isReady()
  30. // 挂载到页面
  31. app.mount('#app', true)
  32. // 挂载到 window
  33. window['$vue'] = app
  34. }
  35. appInit().then(() => {
  36. // 捕获全局错误
  37. // window.addEventListener("unhandledrejection", event => {
  38. // console.warn(`UNHANDLED PROMISE REJECTION: ${event.reason}`);
  39. // });
  40. })