diff --git a/web/package-lock.json b/web/package-lock.json index b08f705..2a9555e 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -8,9 +8,9 @@ "name": "web-ui", "version": "0.0.0", "dependencies": { - "@fontsource/inter": "^5.2.8", - "@fontsource/jetbrains-mono": "^5.2.8", - "@fontsource/noto-sans-sc": "^5.2.9", + "@fontsource-variable/inter": "^5.2.8", + "@fontsource-variable/jetbrains-mono": "^5.2.8", + "@fontsource-variable/noto-sans-sc": "^5.2.10", "@guolao/vue-monaco-editor": "^1.6.0", "@tailwindcss/vite": "^4.1.18", "@tanstack/vue-table": "^8.21.3", @@ -2069,28 +2069,28 @@ } } }, - "node_modules/@fontsource/inter": { + "node_modules/@fontsource-variable/inter": { "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.8.tgz", - "integrity": "sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==", + "resolved": "https://registry.npmjs.org/@fontsource-variable/inter/-/inter-5.2.8.tgz", + "integrity": "sha512-kOfP2D+ykbcX/P3IFnokOhVRNoTozo5/JxhAIVYLpea/UBmCQ/YWPBfWIDuBImXX/15KH+eKh4xpEUyS2sQQGQ==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fontsource/jetbrains-mono": { + "node_modules/@fontsource-variable/jetbrains-mono": { "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.2.8.tgz", - "integrity": "sha512-6w8/SG4kqvIMu7xd7wt6x3idn1Qux3p9N62s6G3rfldOUYHpWcc2FKrqf+Vo44jRvqWj2oAtTHrZXEP23oSKwQ==", + "resolved": "https://registry.npmjs.org/@fontsource-variable/jetbrains-mono/-/jetbrains-mono-5.2.8.tgz", + "integrity": "sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fontsource/noto-sans-sc": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-5.2.9.tgz", - "integrity": "sha512-bTUIWGBgJDpwi5qAr+x0/lcgv80IHTB9vl6s2f6EymZEa7qYV99yNRBZuKFT+SYDKVunZrjCEhWtpxqmbXWl5Q==", + "node_modules/@fontsource-variable/noto-sans-sc": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/@fontsource-variable/noto-sans-sc/-/noto-sans-sc-5.2.10.tgz", + "integrity": "sha512-zdk10i5HrDQTXI7ldD61zToX1fsgig8vDTsu7zB48SXOitWfuX0e5viZAwnkHuhwh096PU6X6i1AyAsbBCISpA==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" diff --git a/web/package.json b/web/package.json index 0fba85b..6d1f630 100644 --- a/web/package.json +++ b/web/package.json @@ -9,9 +9,9 @@ "preview": "vite preview" }, "dependencies": { - "@fontsource/inter": "^5.2.8", - "@fontsource/jetbrains-mono": "^5.2.8", - "@fontsource/noto-sans-sc": "^5.2.9", + "@fontsource-variable/inter": "^5.2.8", + "@fontsource-variable/jetbrains-mono": "^5.2.8", + "@fontsource-variable/noto-sans-sc": "^5.2.10", "@guolao/vue-monaco-editor": "^1.6.0", "@tailwindcss/vite": "^4.1.18", "@tanstack/vue-table": "^8.21.3", diff --git a/web/src/assets/index.css b/web/src/assets/index.css index 3fb84ae..e4a947e 100644 --- a/web/src/assets/index.css +++ b/web/src/assets/index.css @@ -1,14 +1,8 @@ @import "tailwindcss"; @import "tw-animate-css"; -@import "@fontsource/inter/300.css"; -@import "@fontsource/inter/400.css"; -@import "@fontsource/inter/500.css"; -@import "@fontsource/inter/600.css"; -@import "@fontsource/inter/700.css"; -@import "@fontsource/noto-sans-sc/400.css"; -@import "@fontsource/noto-sans-sc/700.css"; -@import "@fontsource/jetbrains-mono/400.css"; -@import "@fontsource/jetbrains-mono/500.css"; +@import "@fontsource-variable/inter/index.css"; +@import "@fontsource-variable/noto-sans-sc/index.css"; +@import "@fontsource-variable/jetbrains-mono/index.css"; /* Sonner toast styles */ [data-sonner-toaster] { diff --git a/web/vite.config.ts b/web/vite.config.ts index ba9404e..1ff46a7 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -120,6 +120,28 @@ export default defineConfig({ let safeName = name.replace(/[\0?*:|"<>\/\\&=$]/g, '-') // 去除开头可能引起静态托管平台屏蔽的下划线 '_' return safeName.replace(/^_/, '') + }, + manualChunks(id) { + if (id.includes('node_modules')) { + // 编辑器相关 + if (id.includes('monaco-editor') || id.includes('@guolao/vue-monaco-editor')) { + return 'vendor-monaco' + } + // 图表相关 + if (id.includes('apexcharts') || id.includes('chart.js') || id.includes('vue3-apexcharts') || id.includes('vue-chartjs')) { + return 'vendor-charts' + } + // 终端相关 + if (id.includes('@xterm/xterm') || id.includes('xterm') || id.includes('ansi-to-html') || id.includes('ansi-to-vue3')) { + return 'vendor-terminal' + } + // 基础 UI 库 + if (id.includes('radix-vue') || id.includes('reka-ui') || id.includes('lucide-vue-next') || id.includes('date-fns')) { + return 'vendor-ui' + } + // 其他基础依赖 + return 'vendor' + } } } }