import { createApp } from 'vue' import App from './App.vue' import router from './router' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' import './assets/styles/global.css' import * as ElementPlusIconsVue from '@element-plus/icons-vue' // 创建应用实例 const app = createApp(App) // 注册插件 app.use(ElementPlus, { size: 'default' }) app.use(router) // 注册图标 for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } // 全局错误处理 app.config.errorHandler = (err) => { if (err.message && err.message.includes('ResizeObserver')) { return } console.error(err) } // 全局警告处理 app.config.warnHandler = (msg, trace) => { if (msg.includes('ResizeObserver')) { return } console.warn(msg, trace) } // 挂载应用 app.mount('#app') // 处理 ResizeObserver 错误 const _ResizeObserver = window.ResizeObserver window.ResizeObserver = class ResizeObserver extends _ResizeObserver { constructor(callback) { super((entries, observer) => { requestAnimationFrame(() => { if (!Array.isArray(entries)) return callback(entries, observer) }) }) } }