70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
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')
|
||
})
|