From 888424195bf5d6267b6b54c764f293b30761515e Mon Sep 17 00:00:00 2001 From: Megghy Date: Sat, 4 Oct 2025 09:54:27 +0800 Subject: [PATCH] perf: optimize build chunks and add bundle size visualization --- bun.lockb | Bin 416726 -> 425593 bytes package.json | 2 + src/client/components/danmaku/danmakuUtils.ts | 19 +- src/components.d.ts | 6 + src/router/index.ts | 2 +- vite.config.mts | 163 ++++++++++++++++-- 6 files changed, 176 insertions(+), 16 deletions(-) diff --git a/bun.lockb b/bun.lockb index 6ec8f3de9903460ac1eb2ed4ff27da825ec27c43..28847b16367e2167965840c33b5ac3cbfc9db479 100644 GIT binary patch delta 76979 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 OhNt&dtH;{?@&5;jg39Co delta 71307 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 + | { data: { inline: { [key: string]: string }, plain: { [key: string]: string } } }, ) { // 计算SC弹幕的颜色类 const scColorClass = computed(() => { @@ -124,7 +125,12 @@ export function useDanmakuUtils( let match try { - const availableEmojis = emojiData.data || {} // 确保 emojiData 已加载 + // 兼容 Ref 和 普通对象两种传参 + const store = (emojiData as any)?.value ?? emojiData + const availableEmojis = (store?.data ?? { inline: {}, plain: {} }) as { + inline?: { [key: string]: string } + plain?: { [key: string]: string } + } while ((match = regex.exec(props.item.msg)) !== null) { // 添加表情前的文本部分 @@ -133,7 +139,12 @@ export function useDanmakuUtils( } const emojiFullName = match[0] // 完整匹配,例如 "[哈哈]" - const emojiInfo = availableEmojis.inline[emojiFullName] || availableEmojis.plain[emojiFullName] + const emojiName = match[1] // 去除方括号后的名称,例如 "哈哈" + // 兼容键名为带/不带方括号的两种情况 + const emojiInfo = (availableEmojis.inline?.[emojiFullName] + ?? availableEmojis.inline?.[emojiName] + ?? availableEmojis.plain?.[emojiFullName] + ?? availableEmojis.plain?.[emojiName]) as string | undefined if (emojiInfo) { // 找到了表情 diff --git a/src/components.d.ts b/src/components.d.ts index 886add7..382f8ff 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -22,13 +22,19 @@ declare module 'vue' { NAvatar: typeof import('naive-ui')['NAvatar'] NButton: typeof import('naive-ui')['NButton'] NCard: typeof import('naive-ui')['NCard'] + NEllipsis: typeof import('naive-ui')['NEllipsis'] + NEmpty: typeof import('naive-ui')['NEmpty'] NFlex: typeof import('naive-ui')['NFlex'] + NFormItemGi: typeof import('naive-ui')['NFormItemGi'] + NGridItem: typeof import('naive-ui')['NGridItem'] NIcon: typeof import('naive-ui')['NIcon'] NImage: typeof import('naive-ui')['NImage'] NPopconfirm: typeof import('naive-ui')['NPopconfirm'] + NScrollbar: typeof import('naive-ui')['NScrollbar'] NSpace: typeof import('naive-ui')['NSpace'] NTag: typeof import('naive-ui')['NTag'] NText: typeof import('naive-ui')['NText'] + NTime: typeof import('naive-ui')['NTime'] PointGoodsItem: typeof import('./components/manage/PointGoodsItem.vue')['default'] PointHistoryCard: typeof import('./components/manage/PointHistoryCard.vue')['default'] PointOrderCard: typeof import('./components/manage/PointOrderCard.vue')['default'] diff --git a/src/router/index.ts b/src/router/index.ts index a8782c7..cb555a1 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -14,7 +14,7 @@ const routes: Array = [ { path: '/', name: 'index', - component: IndexView, + component: async () => import('@/views/IndexView.vue'), meta: { title: '你好', }, diff --git a/vite.config.mts b/vite.config.mts index b9701a4..8cee4b6 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -9,6 +9,7 @@ import Markdown from 'unplugin-vue-markdown/vite' import { defineConfig } from 'vite' import svgLoader from 'vite-svg-loader' import { VineVitePlugin } from 'vue-vine/vite' +import { visualizer } from 'rollup-plugin-visualizer'; // 自定义SVGO插件,删除所有名称以sodipodi:和inkscape:开头的元素 const removeSodipodiInkscape = { @@ -87,6 +88,14 @@ export default defineConfig({ include: [/\.vue$/, /\.vue\?vue/, /\.md$/, /\.vine$/], }), VineVitePlugin(), + visualizer({ + open: false, // 不自动打开浏览器,避免影响 CI/CD + gzipSize: true, // 显示 Gzip 压缩后的大小 + brotliSize: true, // 显示 Brotli 压缩后的大小 + filename: 'dist/stats.html', // 分析报告的输出路径 + template: 'treemap', // 使用树图模式展示 + sourcemap: true, // 使用 sourcemap 进行更精确的分析 + }), ], server: { port: 51000 }, resolve: { alias: { '@': path.resolve(__dirname, 'src') } }, @@ -96,29 +105,161 @@ export default defineConfig({ '__BUILD_TIME__': JSON.stringify(new Date().toISOString()), }, optimizeDeps: { - include: ['@vicons/fluent', '@vicons/ionicons5', 'vue', 'vue-router'], + include: [ + 'vue', + 'vue-router', + 'pinia', + '@vueuse/core', + 'naive-ui', + 'date-fns', + '@vicons/fluent', + '@vicons/ionicons5', + ], + exclude: ['@tauri-apps/api', '@tauri-apps/plugin-autostart', '@tauri-apps/plugin-http'], }, build: { sourcemap: true, target: 'esnext', minify: 'oxc', - chunkSizeWarningLimit: 1000, + chunkSizeWarningLimit: 1600, // 调整警告阈值,gamepad-assets 会比较大 + cssCodeSplit: true, + cssMinify: 'lightningcss', + // 报告压缩后的文件大小 + reportCompressedSize: true, + // 优化模块预加载策略 + modulePreload: { + polyfill: true, + }, + // 静态资源内联阈值(小于此大小的资源会被内联为 base64) + assetsInlineLimit: 4096, // 4KB,默认值,可根据需要调整 rollupOptions: { - output: { // @ts-ignore + output: { advancedChunks: { groups: [ { - name: 'vue-vendor', - test: /[\\/]node_modules[\\/](vue|vue-router|pinia)[\\/]/, - priority: -10, - }, - { - name: 'ui-vendor', - test: /[\\/]node_modules[\\/](naive-ui|@vueuse[\\/]core)[\\/]/, - priority: -10, + name: (id: string) => { + // 核心框架 + if (id.includes('node_modules/vue/') || id.includes('node_modules/@vue/')) { + return 'vue-core' + } + if (id.includes('node_modules/vue-router/')) { + return 'vue-router' + } + if (id.includes('node_modules/pinia/')) { + return 'pinia' + } + + // UI 框架及相关 + if (id.includes('node_modules/naive-ui/') || id.includes('node_modules/vueuc/')) { + return 'naive-ui' + } + + // VueUse 系列 + if (id.includes('node_modules/@vueuse/')) { + return 'vueuse' + } + + // 图标库 + if (id.includes('node_modules/@vicons/')) { + return 'icons' + } + + // Gamepad 配置和资源(体积大,单独分离) + if (id.includes('/gamepadConfigs') || id.includes('assets/controller/')) { + return 'gamepad-assets' + } + + // 字典文件(拼音、假名等,按需加载) + if (id.includes('/dictPinyin')) { + return 'dict-pinyin' + } + if (id.includes('/dictKana')) { + return 'dict-kana' + } + + // Monaco Editor (代码编辑器,体积大) + if (id.includes('node_modules/monaco-editor/') || id.includes('node_modules/@guolao/vue-monaco-editor/')) { + return 'monaco-editor' + } + + // ECharts (图表库,体积大) + if (id.includes('node_modules/echarts/') || id.includes('node_modules/vue-echarts/')) { + return 'echarts' + } + + // 富文本编辑器 + if (id.includes('node_modules/@wangeditor/')) { + return 'wangeditor' + } + + // SignalR 相关 + if (id.includes('node_modules/@microsoft/signalr')) { + return 'signalr' + } + + // Tauri 相关(客户端专用) + if (id.includes('node_modules/@tauri-apps/')) { + return 'tauri' + } + + // B站直播弹幕客户端 + if (id.includes('node_modules/bilibili-live-danmaku/')) { + return 'bili-danmaku' + } + + // 工具库 + if (id.includes('node_modules/lodash/')) { + return 'lodash' + } + if (id.includes('node_modules/date-fns/')) { + return 'date-fns' + } + + // Excel 相关 (体积大) + if (id.includes('node_modules/xlsx/')) { + return 'xlsx' + } + + // 压缩和解压 + if (id.includes('node_modules/jszip/') || id.includes('node_modules/@oneidentity/zstd-js/')) { + return 'compression' + } + + // 其他大型依赖 + if (id.includes('node_modules/html2canvas/')) { + return 'html2canvas' + } + if (id.includes('node_modules/cropperjs/') || id.includes('node_modules/vue-cropperjs/')) { + return 'cropper' + } + + // 通用 node_modules 分离 + if (id.includes('node_modules/')) { + return 'vendor' + } + + return null + }, }, ], }, + chunkFileNames: 'assets/js/[name]-[hash].js', + entryFileNames: 'assets/js/[name]-[hash].js', + assetFileNames: (assetInfo: any) => { + // 根据资源类型分类存放 + const info = assetInfo.name?.split('.') ?? [] + const ext = info[info.length - 1] + if (/png|jpe?g|svg|gif|tiff|bmp|ico/i.test(ext)) { + return 'assets/images/[name]-[hash][extname]' + } + if (/woff2?|ttf|otf|eot/i.test(ext)) { + return 'assets/fonts/[name]-[hash][extname]' + } + if (/css/i.test(ext)) { + return 'assets/css/[name]-[hash][extname]' + } + return 'assets/[ext]/[name]-[hash][extname]' + }, }, }, },