import { createApp } from 'vue' import App from './App.vue' // reset style sheet import '@/styles/reset.scss' // CSS common style sheet import '@/styles/common.scss' // iconfont css import '@/assets/iconfont/iconfont.scss' // font css import '@/assets/fonts/font.scss' // element css import 'element-plus/dist/index.css' // element dark css import 'element-plus/theme-chalk/dark/css-vars.css' // custom element dark css import '@/styles/element-dark.scss' // custom element css import '@/styles/element.scss' // svg icons import 'virtual:svg-icons-register' // element plus import ElementPlus from 'element-plus' // element icons import * as Icons from '@element-plus/icons-vue' // custom directives import directives from '@/directives/index' // vue Router import router from '@/routers' // vue i18n import I18n from '@/languages/index' // pinia store import pinia from '@/stores' // errorHandler import errorHandler from '@/utils/errorHandler' import registerGlobComp from '@/components' const app = createApp(App) // 自定义警告处理程序,忽略所有警告 app.config.warnHandler = () => { } // if (import.meta.env.VUE_APP_SILENCE_WARNINGS === true) { // } app.config.errorHandler = errorHandler // register the element Icons component Object.keys(Icons).forEach(key => { app.component(key, Icons[key as keyof typeof Icons]) }) const setupAll = async () => { app .use(ElementPlus) .use(directives) .use(router) // 使用路由 .use(I18n) .use(pinia) .use(registerGlobComp) // 使用全局自定义组件 //待路由初始化完毕后,挂载app await router.isReady() } //挂载app setupAll().then(() => { app.mount('#app') })