Files
knowledge-governance/web/.prettier-baseline.json
姚章浩 2fcd0ed684 build(web): vite 7.3.7 + vitest 5.0.3 清依赖漏洞,并加入 prettier
npm audit 全量原本报 2 critical + 2 high + 1 moderate,全在开发/测试链上
(vite dev server / vitest / tinypool / @vitest/mocker / source-map-js)。
不能靠"只记例外"糊过去:例外要人批,而这里是能真修的。
升到 vite 7.3.7 + vitest 5.0.3 后 audit 全量 0 命中,191 个前端用例仍全过。

同时锁 prettier 3.9.10 并加 format / format:check 脚本 —— 前端格式从此有门禁。
存量格式债(79 个文件,多为刻意压行的紧凑写法)记入 .prettier-baseline.json:
列明、只能减、2026-12-31 到期,新欠账一律判红(见 scripts/check_format.py)。

为什么不做全量格式化:一次性重排约 2 万行,会把"接入 CI"变成"重写前端";
那件事留作独立提交,由人决定何时做。

验证:前端 191 个用例全过、tsc 类型检查通过、vite 构建通过、npm audit 全量 0;
prettier --list-different 的输出与基线完全一致。
2026-10-12 00:10:31 +08:00

97 lines
3.6 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"_doc": [
"前端格式债**基线**(只能减、不能增)。检查在 scripts/check_format.py,CI 会跑它。",
"这里列的是本仓**接入格式化门禁之前**就已经不符合 prettier 的文件;它们是一次性账面债,",
"不是「永远忽略 web/ 目录」—— 新出现的未格式化文件一律判红,这个清单本身的长短也被断言。",
"规则:",
" 1. prettier --list-different 的输出里,任何**不在**本清单里的文件 ⇒ 门禁红。",
" 2. 似乎已格式化(不再出现在输出里)的条目 ⇒ 提示可以删掉这条(不判红,避免误伤)。",
" 3. 到期日 review_by 之后 ⇒ 门禁红:要么 `npm --prefix web run format` 一次清干净,",
" 要么由人重新批准并更新 review_by。基线不许无声续命。",
"为什么不全量格式化:这份代码里有一部分是刻意压行的紧凑写法(一个组件一行),",
"一次性重排约 2 万行 —— 那会把「接入 CI」变成「重写整个前端」。留作独立提交,由人决定何时做。"
],
"review_by": "2026-12-31",
"unformatted": [
"src/App.test.tsx",
"src/App.tsx",
"src/BackupScheduleSection.test.tsx",
"src/BackupScheduleSection.tsx",
"src/DingtalkSessionControl.test.tsx",
"src/DingtalkSessionControl.tsx",
"src/DingtalkSourceDiscovery.test.tsx",
"src/DingtalkSourceDiscovery.tsx",
"src/DocumentWorkbench.test.tsx",
"src/DocumentWorkbench.tsx",
"src/FilenameFilterEditor.test.tsx",
"src/FilenameFilterEditor.tsx",
"src/MembersSection.tsx",
"src/PasswordInput.test.tsx",
"src/ProductionBindingsSection.tsx",
"src/ReleasePlanner.test.tsx",
"src/ReleasePlanner.tsx",
"src/RoutingBindingsSection.tsx",
"src/ScopeRuleEditor.test.tsx",
"src/ScopeRuleEditor.tsx",
"src/SnapshotHistory.test.tsx",
"src/SnapshotHistory.tsx",
"src/SourceCatalogBrowser.test.tsx",
"src/SourceCatalogBrowser.tsx",
"src/SourceLinkManager.test.tsx",
"src/SourceLinkManager.tsx",
"src/SystemSettings.test.tsx",
"src/SystemSettings.tsx",
"src/WeKnoraMonitor.test.tsx",
"src/WeKnoraMonitor.tsx",
"src/assets.test.ts",
"src/assets.ts",
"src/auth.tsx",
"src/authMembers.test.ts",
"src/backupSchedule.test.ts",
"src/backupSchedule.ts",
"src/dingtalkSession.test.ts",
"src/dingtalkSession.ts",
"src/dingtalkSources.test.ts",
"src/dingtalkSources.ts",
"src/documentFixture.ts",
"src/documentWorkbench.css",
"src/documentWorkbench.test.ts",
"src/documentWorkbench.ts",
"src/filenameFilters.ts",
"src/main.tsx",
"src/members.ts",
"src/monitor.test.ts",
"src/monitor.ts",
"src/operationKey.test.ts",
"src/operationKey.ts",
"src/productionBindings.test.ts",
"src/productionBindings.ts",
"src/releasePlanner.css",
"src/releasePlanner.test.ts",
"src/releasePlanner.ts",
"src/reviewRelease.test.ts",
"src/reviewRelease.ts",
"src/routingBindings.test.ts",
"src/routingBindings.ts",
"src/scopeRules.test.ts",
"src/scopeRules.ts",
"src/sourceCatalog.test.ts",
"src/sourceCatalog.ts",
"src/sourceCatalogBrowser.css",
"src/sourceConnections.test.ts",
"src/sourceConnections.ts",
"src/sourceLinkManager.css",
"src/styles.css",
"src/systemSettings.css",
"src/testPublications.test.ts",
"src/testPublications.ts",
"src/uiSettings.test.ts",
"src/uiSettings.ts",
"src/weknoraMonitor.css",
"src/workspace.test.ts",
"src/workspace.ts",
"src/workspaceContext.test.tsx",
"src/workspaceContext.tsx"
]
}