import { createApp } from 'vue' import { createPinia } from 'pinia' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import * as ElementPlusIconsVue from '@element-plus/icons-vue' import { loader } from '@guolao/vue-monaco-editor' import * as monaco from 'monaco-editor' import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker' import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker' import App from './App.vue' import './styles/global.css' // Monaco worker setup for Vite self.MonacoEnvironment = { getWorker(_, label) { if (label === 'json') return new jsonWorker() return new editorWorker() }, } // Use local monaco-editor loader.config({ monaco }) const app = createApp(App) app.use(createPinia()) app.use(ElementPlus, { size: 'small' }) for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } app.mount('#app')