import { createApp } from 'vue' import { createPinia } from 'pinia' import { naiveUi } from '@/common/naive-ui/components.ts' import { registerBuiltInApps } from '@/apps' import { systemBootstrapper } from '@/services/di/SystemBootstrapper' import { ServiceProvider } from '@/services/di/ServiceProvider' import { ServiceIds } from '@/services/di/ServiceRegistry' import 'virtual:uno.css' import './css/basic.css' import App from './ui/App.vue' // 创建应用实例 const app = createApp(App) // 注册插件 app.use(createPinia()) app.use(naiveUi) // 全局错误处理 app.config.errorHandler = (error, instance, info) => { console.error('Vue应用错误:', error, info) } // 启动应用函数 async function startApplication() { try { // 注册内置应用 registerBuiltInApps() console.log('正在启动桌面系统...') // 使用系统启动器初始化依赖注入系统和所有服务 const success = await systemBootstrapper.bootstrap({ debug: import.meta.env.DEV, autoCleanup: true }) if (!success) { throw new Error('系统启动失败') } // 获取系统服务并提供给Vue应用 const systemService = ServiceProvider.getSystemService() app.provide('systemService', systemService) // 挂载应用 app.mount('#app') console.log('桌面系统启动完成') } catch (error) { console.error('系统启动失败:', error) // 显示错误信息 document.body.innerHTML = `

系统启动失败

错误信息: ${error instanceof Error ? error.message : '未知错误'}

` } } // 启动应用 startApplication() // 在页面卸载时清理系统服务 window.addEventListener('beforeunload', () => { systemBootstrapper.shutdown() })