From ca1df3844084b8793a98935e657c6156505cef70 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Sun, 27 Sep 2026 16:15:05 +0800 Subject: [PATCH] =?UTF-8?q?chore(web):=20=E6=9E=84=E5=BB=BA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=B8=85=E7=90=86=20=E2=80=94=E2=80=94=20=E5=88=AB?= =?UTF-8?q?=E5=90=8D=E8=AF=BB=20tsconfig=E3=80=81=E8=B0=83=E9=AB=98=20chun?= =?UTF-8?q?k=20=E8=AD=A6=E5=91=8A=E9=98=88=E5=80=BC=E3=80=81=E5=88=A0?= =?UTF-8?q?=E6=AD=BB=E6=8E=89=E7=9A=84=20browserslistrc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - resolve.alias 换成 resolve.tsconfigPaths,别名只在 tsconfig.app.json 写一份 - chunkSizeWarningLimit 调到 1000:超 500 kB 的三个 chunk(skulpt / wangeditor / @mermaid-js/parser)都是懒加载,默认阈值下每次构建都报,真涨了反而看不见 - 删 .browserslistrc(chrome >= 90):renderLegacyChunks 关着时 plugin-legacy 不读它, vite / oxc 也不读,留着只会和 105 的基线打架 Co-Authored-By: Claude Opus 5.5 --- apps/web/.browserslistrc | 1 - apps/web/CLAUDE.md | 3 +++ apps/web/vite.config.ts | 17 ++++++++++------- 3 files changed, 13 insertions(+), 8 deletions(-) delete mode 100644 apps/web/.browserslistrc diff --git a/apps/web/.browserslistrc b/apps/web/.browserslistrc deleted file mode 100644 index 21e47a5..0000000 --- a/apps/web/.browserslistrc +++ /dev/null @@ -1 +0,0 @@ -chrome >= 90 diff --git a/apps/web/CLAUDE.md b/apps/web/CLAUDE.md index 97e03ae..fe619b0 100644 --- a/apps/web/CLAUDE.md +++ b/apps/web/CLAUDE.md @@ -85,6 +85,9 @@ admin → ./src/admin shared → ./src/shared ``` +只在 `tsconfig.app.json` 的 `paths` 里写一份,`vite.config.ts` 用 `resolve.tsconfigPaths` +直接读它 —— 加别名只改 tsconfig。 + ### HTTP Client `utils/api.ts` — Axios instance with interceptors (`baseURL: "/api"`, diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index 27a470b..dad86ed 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -1,4 +1,3 @@ -import { fileURLToPath, URL } from "node:url" import { defineConfig } from "vite" import vue from "@vitejs/plugin-vue" import legacy from "@vitejs/plugin-legacy" @@ -137,12 +136,16 @@ export default defineConfig(() => { ], envPrefix: "PUBLIC_", resolve: { - alias: { - utils: fileURLToPath(new URL("./src/utils", import.meta.url)), - oj: fileURLToPath(new URL("./src/oj", import.meta.url)), - admin: fileURLToPath(new URL("./src/admin", import.meta.url)), - shared: fileURLToPath(new URL("./src/shared", import.meta.url)), - }, + // 别名(utils / oj / admin / shared)只在 tsconfig.app.json 的 paths 写一份, + // 这里直接读它。tsconfig.json 是 references 空壳也没关系,会顺着找过去(实测) + tsconfigPaths: true, + }, + build: { + // 超过 500 kB 的三个 chunk 都是懒加载的:skulpt(Python 语法检查,产物名叫 + // main-*.js,是 skulpt 自己入口的名字,不是应用入口)、wangeditor(后台富文本)、 + // @mermaid-js/parser。默认阈值下这条警告每次构建都在报,真涨了反而没人看, + // 所以抬到比它们略高。首屏入口 index-*.js 在 175 kB 左右 + chunkSizeWarningLimit: 1000, }, server: { port: 5173,