import { createApp } from 'vue' import 'element-plus/theme-chalk/dark/css-vars.css' import App from './App.vue' import router, { installRouter } from './router' import pinia, { installStore } from '@/stores' import { installAssets } from '@/plugins/assets' import { Env } from '@/utils/env.ts' import { installI18n } from '@/i18n' import { setAuthExpiredHandler } from '@/api/http' import { useMenuStore } from '@/stores/modules/menu' import { useTabsStore } from '@/stores/modules/tabs' const app = createApp(App) installRouter(app) installStore(app) // 会话过期(401 刷新失败)时:清状态 + 跳登录 setAuthExpiredHandler(() => { useMenuStore(pinia).reset() useTabsStore(pinia).removeAll() if (router.currentRoute.value.path !== '/login') { router.push('/login') } }) installI18n(app) installAssets() // 获取当前模式 const currentMode = import.meta.env.MODE console.log('当前模式:', currentMode) // 输出: development, uat 或 production console.log('VITE_APP_NAME: ', Env.get('VITE_APP_NAME')) console.log('VITE_NUMBER_DEMO: ', Env.getNumber('VITE_NUMBER_DEMO')) console.log('VITE_BOOLEAN_DEMO: ', Env.getBoolean('VITE_BOOLEAN_DEMO')) console.log('isDev', Env.isDev) console.log('isUat', Env.isUat) console.log('isProd', Env.isProd) app.mount('#app')