43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import { createApp } from 'vue'
|
|
import App from './App.vue'
|
|
import ElementPlus from 'element-plus';
|
|
import 'element-plus/dist/index.css'
|
|
import '@/styles/index.scss'
|
|
import '@/assets/css/styles.css'
|
|
import '@/assets/css/all.min.css'
|
|
import pinia from './store'
|
|
import * as echarts from 'echarts';
|
|
import router, { loadAndRegisterRoutes } from './router';
|
|
|
|
//@ts-expect-error忽略当前文件ts类型的检测否则有红色提示(打包会失败)
|
|
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
|
|
|
|
const app = createApp(App)
|
|
app.config.globalProperties.$echarts = echarts
|
|
|
|
app.use(ElementPlus, {
|
|
locale: zhCn
|
|
})
|
|
|
|
app.use(pinia);
|
|
|
|
// 在注册路由之前先加载并注册动态路由
|
|
// 这样 Vue Router 在创建时就能匹配到所有路由
|
|
loadAndRegisterRoutes()
|
|
.then(() => {
|
|
// 路由加载完成后再注册 router
|
|
app.use(router);
|
|
// 等待路由准备就绪
|
|
return router.isReady();
|
|
})
|
|
.then(() => {
|
|
app.mount('#app');
|
|
})
|
|
.catch((error) => {
|
|
console.error('Failed to load routes:', error);
|
|
// 即使路由加载失败,也要注册路由和挂载应用
|
|
// 路由守卫会处理后续的路由加载
|
|
app.use(router);
|
|
app.mount('#app');
|
|
});
|