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'); });