import { createApp } from 'vue'; import App from './App.vue'; import { setBaseUrl } from '@/axios/index'; import { createPinia } from 'pinia'; import router from '@/router/index'; import { createRouterGuards } from '@/router/index'; import ElementPlus from 'element-plus'; import * as ElementPlusIconsVue from '@element-plus/icons-vue'; import i18n from '@/i18n/index'; import { hasPermission } from '@/directives' // v-md-editor 预览组件 import VMdPreview from '@kangc/v-md-editor/lib/preview' import '@kangc/v-md-editor/lib/style/preview.css' import githubTheme from '@kangc/v-md-editor/lib/theme/github.js' import '@kangc/v-md-editor/lib/theme/style/github.css' // highlightjs import hljs from 'highlight.js' // markdown编辑器 import VMdEditor from '@kangc/v-md-editor' import '@kangc/v-md-editor/lib/style/base-editor.css' VMdPreview.use(githubTheme, { Hljs: hljs }) VMdEditor.use(githubTheme, { Hljs: hljs }) import 'xterm/css/xterm.css' import '@/assets/iconfont/iconfont.css'; import '@/assets/iconfont/iconfont.js'; import './styles/element/index.scss'; import './styles/index.scss'; async function appInit() { const app = createApp(App); // 获取本地的config.json await setBaseUrl(); createRouterGuards() app.use(router); app.use(VMdPreview) app.use(VMdEditor) app.use(createPinia()); app.use(ElementPlus); for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component); } app.use(i18n); app.directive(hasPermission.name, hasPermission) // 路由准备就绪后挂载APP实例 await router.isReady(); app.mount('#app'); } appInit();