@tianyio/quality-helper
Version:
A comprehensive quality helper tool for project scaffolding and management
67 lines (54 loc) • 1.89 kB
text/typescript
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import { pinia } from './stores'
import versionInfo from 'virtual:version-info'
import { getErrorHandler } from '@tianyio/fast-util-lib'
console.log('📦 应用版本:', versionInfo)
// 样式文件
import './style.css'
// 创建 Vue 应用实例
const app = createApp(App)
// 设置全局错误处理
app.config.errorHandler = getErrorHandler()
app.use(pinia)
app.use(router)
// 初始化 stores(如果需要)
// initializeStores()
// 开发环境下的调试信息和性能监控
if (import.meta.env.DEV) {
// 性能监控
const startTime = performance.now()
app.mount('#root')
const mountTime = performance.now() - startTime
console.log(`⚡ 应用挂载耗时: ${mountTime.toFixed(2)}ms`)
// 内存使用情况(如果浏览器支持)
if ('memory' in performance) {
const { memory } = performance as {
memory: { usedJSHeapSize: number; totalJSHeapSize: number; jsHeapSizeLimit: number }
}
console.log('💾 内存使用情况:', {
used: `${(memory.usedJSHeapSize / 1024 / 1024).toFixed(2)}MB`,
total: `${(memory.totalJSHeapSize / 1024 / 1024).toFixed(2)}MB`,
limit: `${(memory.jsHeapSizeLimit / 1024 / 1024).toFixed(2)}MB`,
})
}
}
// 生产环境优化
if (import.meta.env.PROD) {
// 挂载应用
app.mount('#root')
// 禁用开发者工具
app.config.devtools = false
// 性能标记
performance.mark('app-start')
// 应用加载完成后的性能测量
window.addEventListener('load', () => {
performance.mark('app-loaded')
performance.measure('app-load-time', 'app-start', 'app-loaded')
const [measure] = performance.getEntriesByName('app-load-time')
console.log(`📊 应用加载时间: ${measure?.duration.toFixed(2)}ms`)
})
}
// 导出应用实例供测试使用
export default app