perf: 优化构建体积和依赖
- 移除未使用的依赖包 (@unovis/ts, @unovis/vue, markdown-it) - 优化 vite manualChunks 配置,将 echarts/chart.js 分离为独立 chunk - 主入口文件从 1.1MB 减少到 211KB (-81%) - 依赖包数量从 837 减少到 662
This commit is contained in:
+22
-3
@@ -112,9 +112,25 @@ export default defineConfig({
|
||||
},
|
||||
entryFileNames: 'assets/[name]-[hash].js',
|
||||
assetFileNames: 'assets/[name]-[hash].[ext]',
|
||||
manualChunks: {
|
||||
'vue-vendor': ['vue', 'vue-router', 'vue-i18n', 'pinia', '@vueuse/core'],
|
||||
'ui-vendor': ['reka-ui', 'class-variance-authority', 'clsx', 'tailwind-merge', 'lucide-vue-next'],
|
||||
manualChunks(id) {
|
||||
if (id.includes('node_modules/echarts/') || id.includes('node_modules\\echarts\\')) {
|
||||
return 'echarts'
|
||||
}
|
||||
if (id.includes('node_modules/chart.js/') || id.includes('node_modules\\chart.js\\')) {
|
||||
return 'chart'
|
||||
}
|
||||
if (id.includes('node_modules/vue/') || id.includes('node_modules/vue-router/') || id.includes('node_modules/vue-i18n/') || id.includes('node_modules/pinia/') || id.includes('node_modules/@vueuse/')) {
|
||||
return 'vue-vendor'
|
||||
}
|
||||
if (id.includes('node_modules/reka-ui/') || id.includes('node_modules/class-variance-authority/') || id.includes('node_modules/clsx/') || id.includes('node_modules/tailwind-merge/') || id.includes('node_modules/lucide-vue-next/')) {
|
||||
return 'ui-vendor'
|
||||
}
|
||||
if (id.includes('node_modules/vee-validate/') || id.includes('node_modules/@vee-validate/') || id.includes('node_modules/zod/')) {
|
||||
return 'form-vendor'
|
||||
}
|
||||
if (id.includes('node_modules/@tanstack/')) {
|
||||
return 'table-vendor'
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -135,4 +151,7 @@ export default defineConfig({
|
||||
drop: ['debugger'],
|
||||
pure: ['console.log'],
|
||||
},
|
||||
optimizeDeps: {
|
||||
exclude: ['echarts', 'chart.js'],
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user