2026-09-28
更新概览
- React SPA 模板:13 项依赖升级(Vite 8.3.1、ESLint 10.11.0、Vitest 5.0.2、orval 8.38.0 等),全部为 patch/minor。
- Vue 3 SPA 模板:16 项升级,含
@vueuse/core14.4.0 → 15.0.0 大版本(经官方 release notes 核对,模板仅用reactiveOmit/useVModel,不在破坏点清单内)。 - React SSR 模板:14 项升级(Next.js 16.3.6 等);ESLint 10 候选被拒——
eslint-config-next@16.3.6仍拉取eslint-plugin-react@7.37.5,维持 ESLint 9 兼容线。 - Vue 3 SSR 模板:18 项升级(含
@vueuse/core15.0.0);h3 2.x RC 候选被拒。 - Spring Boot 后端模板:archunit-junit5 1.5.1、spotless 3.10.3、Maven Wrapper 3.9.16;Spring Boot parent 4.1.1 仍为 4.1 线最新稳定版,本次无 BOM 层变化。
- 供应链:pnpm 信任策略(no-downgrade)拦截
why-is-node-running@3.2.2;tarball 逐行审查后确认良性,四套前端trustPolicyExclude加入该版本(沿用 million/semver 既有先例)。 - 本次验证:四套前端 typecheck/lint/test/coverage/组件守卫/build/E2E 全部通过;后端生成项目
mvnw clean verify通过;cwa-stack 78 个测试通过。
React SPA 模板 (vite_react_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| vite | ^8.3.0 | ^8.3.1 | patch | 构建内核补丁 |
| vitest / @vitest/coverage-v8 / @vitest/ui | ^5.0.1 | ^5.0.2 | patch | 测试栈补丁 |
| eslint | ^10.10.0 | ^10.11.0 | minor | 代码规范 |
| @eslint-react/eslint-plugin | ^5.19.1 | ^5.20.8 | minor | React 专项规则 |
| orval | ^8.34.0 | ^8.38.0 | minor | OpenAPI 契约生成 |
| lucide-react | ^1.46.0 | ^1.48.0 | minor | 图标库 |
| jsdom | ^30.0.1 | ^30.1.1 | minor | 测试环境 |
| lint-staged | ^17.5.1 | ^17.6.0 | minor | 提交钩子 |
| @types/node | ^24.13.5 | ^24.19.0 | patch | Node 24 线类型(拒绝 26.x,见下) |
| @vitejs/devtools / devtools-kit | ^0.7.5 | ^0.7.6 | patch | 调试工具 |
升级内容说明
全部为 registry patch/minor,无 API 变化。pnpm peers check 通过,安装无 peer/engine 警告。
模板影响
README/AGENTS 基线行同步(Vite 8.3.1、ESLint 10.11.0、lucide-react 1.48.0)。锁文件随安装更新。
Vue 3 SPA 模板 (vite_vue3_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| @vueuse/core | ^14.4.0 | ^15.0.0 | major | 组合式工具库大版本 |
| vue | ^3.5.42 | ^3.5.43 | patch | 框架补丁 |
| reka-ui | ^2.10.4 | ^2.10.5 | patch | 无头组件 |
| @lucide/vue | ^1.46.0 | ^1.48.0 | minor | 图标库 |
| oxlint | ^1.83.0 | ^1.85.0 | minor | Lint 引擎 |
| oxfmt | ^0.68.0 | ^0.70.0 | minor | 格式化 |
| orval | ^8.34.0 | ^8.38.0 | minor | 契约生成 |
| vite / vitest 系列 | 8.3.0 / 5.0.1 | 8.3.1 / 5.0.2 | patch | 构建与测试 |
| jsdom / lint-staged / @types/node | — | 30.1.1 / 17.6.0 / 24.19.0 | minor/patch | 测试与工程化 |
升级内容说明
@vueuse/core 15.0.0 的官方破坏点:移除 templateRef、放弃 Node 20、移除废弃的 timer options(改 scheduler)、useThrottleFn 默认 trailing 改为 true、useEventSource 处理 SSE message 类型、useIDBKeyval 跨 tab 同步。模板源码仅在 shadcn-vue 组件中使用 reactiveOmit 与 useVModel,全部不在破坏点清单内,属安全大版本升级。
模板影响
README/AGENTS 基线行同步(Vite 8.3.1、Vue 3.5.43)。锁文件更新。
React SSR 模板 (vite_react_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| next | ^16.3.5 | ^16.3.6 | patch | SSR 框架补丁 |
| eslint-config-next | ^16.3.5 | ^16.3.6 | patch | 官方 Lint 配置 |
| lucide-react | ^1.46.0 | ^1.48.0 | minor | 图标库 |
| sass | ^1.104.1 | ^1.105.0 | minor | 样式编译 |
| orval | ^8.34.0 | ^8.38.0 | minor | 契约生成 |
| oxfmt | ^0.68.0 | ^0.70.0 | minor | 格式化 |
| @commitlint/cli / config-conventional | ^21.2.2 | ^21.2.3 | patch | 提交规范 |
| vitest 系列 | ^5.0.1 | ^5.0.2 | patch | 测试栈 |
| jsdom / lint-staged / @types/node | — | 30.1.1 / 17.6.0 / 24.19.0 | minor/patch | 测试与工程化 |
升级内容说明
ESLint 10.11.0 候选被拒绝:虽然 eslint-config-next@16.3.6 声明的 peer 范围(>=9.0.0)允许 ESLint 10,但其实际依赖的 eslint-plugin-react@7.37.5 peer 止于 ^9.7,且 2026-09-17 本地已验证其在 ESLint 10 下 detectReactVersion 崩溃;本次复核确认 16.3.6 仍拉取同一版本。ESLint 维持 9.39.5(9.x 线最新)。
需要说明:ESLint 9 线现已被上游标记为 "no longer supported",这是一个已知的、被接受的临时风险,AGENTS.md 已更新复验记录(2026-09-28),待 eslint-plugin-react 发布 ESLint 10 支持后解除。
模板影响
README 版本行同步(Next.js 16.3.6、lucide-react 1.48.0、oxfmt 0.70.0,ESLint 9 兼容线说明补充上游支持状态)。AGENTS.md 更新复验日期与结论。锁文件更新。
Vue 3 SSR 模板 (vite_vue3_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| @vueuse/core | ^14.4.0 | ^15.0.0 | major | 同 Vue 3 SPA,破坏点不涉及模板用法 |
| vue | ^3.5.42 | ^3.5.43 | patch | 框架补丁 |
| reka-ui | ^2.10.4 | ^2.10.5 | patch | 无头组件 |
| @lucide/vue | ^1.46.0 | ^1.48.0 | minor | 图标库 |
| eslint | ^10.10.0 | ^10.11.0 | minor | 代码规范 |
| @typescript-eslint/parser | ^8.70.0 | ^8.70.1 | patch | Vue/TS 解析 |
| oxlint / oxfmt | 1.83.0 / 0.68.0 | 1.85.0 / 0.70.0 | minor | Ox 工具链 |
| sass | ^1.104.1 | ^1.105.0 | minor | 样式编译 |
| orval | ^8.34.0 | ^8.38.0 | minor | 契约生成 |
| @commitlint/cli / config-conventional | ^21.2.2 | ^21.2.3 | patch | 提交规范 |
| vitest 系列 / jsdom / lint-staged / @types/node | — | 5.0.2 / 30.1.1 / 17.6.0 / 24.19.0 | patch/minor | 测试与工程化 |
升级内容说明
Nuxt 保持 4.5.2(registry 最新)、@nuxt/test-utils 4.3.2、@pinia/nuxt 1.0.2 均无更新。h3 2.0.1-rc.32 候选被拒:RC 预发布版本,且 h3 由 Nuxt 自身管理,模板显式声明保留 1.15.11。
模板影响
README 版本行同步(Vue 3.5.43、@lucide/vue 1.48.0、Oxlint 1.85.0、ESLint 10.11.0、oxfmt 0.70.0)。锁文件更新。SSR 边界约定(.client 插件、onMounted/import.meta.client 保护、服务端密钥隔离)未受影响。
Spring Boot 后端模板 (springboot-template)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| archunit-junit5 | 1.5.0 | 1.5.1 | patch | 架构门禁(Maven Central 最新) |
| spotless-maven-plugin | 3.10.2 | 3.10.3 | patch | 格式化门禁 |
| Maven Wrapper(distributionUrl) | 3.9.11 | 3.9.16 | toolchain | Maven 发行版补丁 |
升级内容说明
Spring Boot parent 保持 4.1.1——4.1 线最新稳定版;4.2.0-M2 为里程碑(milestone),模板不采用预发布线。springdoc-openapi 3.1.1、JaCoCo 0.8.15 均已是各自最新版,本次无变化。Docker 基础镜像(eclipse-temurin:25)、compose 镜像(mysql:8.4、redis:8-alpine)、CI java-version 25 均无需变化。
模板影响
README 版本原则行同步(archunit 1.5.1)。占位符约定(//)与生成流程不受影响;管理端口 9090 与业务端口 8080 分离、readiness 聚合 db+redis、opaque token 会话模型等文档事实保持原样。
供应链:why-is-node-running 信任降级处置
升级 Vitest 5.0.2 时,pnpm 信任策略(trustPolicy: no-downgrade)拦截其依赖 why-is-node-running@3.2.2:该版本(2025-01-08 发布)缺失 provenance attestation,而更早版本均有。
处置过程:
- 下载 3.2.1 与 3.2.2 两个 tarball 逐行比对:差异仅为
WeakRef内存泄漏修复与 V8 stack trace API 弃用适配(getFileName()→prepareStackTrace收集),无网络行为、无混淆、无可疑代码。 - 结论为良性维护版本,按模板既有先例(
million@3.1.11、semver@6.3.1)加入四套前端pnpm-workspace.yaml的trustPolicyExclude。
不阻塞模板使用;后续若发布带 provenance 的 3.2.3+,可从白名单移除该条目。
未采用的候选版本
| 候选 | 拒绝原因 |
|---|---|
| typescript 7.0.2(全部前端) | @typescript-eslint/parser@8.70.1 peer 要求 <6.1.0;TS 7(Go 原生编译器)生态未就绪,保持 6.0.3(6.x 线最新) |
| @types/node 26.6.3(全部前端) | 与 engines.node >=24.11.0 <25 不匹配,保持 24 线最新 24.19.0 |
| eslint 10.11.0(React SSR) | eslint-plugin-react@7.37.5(经 eslint-config-next 16.3.6 引入)在 ESLint 10 下崩溃,维持 9.x 兼容线 |
| h3 2.0.1-rc.32(Vue SSR) | RC 预发布且由 Nuxt 管理,保持 1.15.11 |
| Spring Boot 4.2.0-M2 | 里程碑版本,模板采用稳定线 4.1.1 |
文档与锁文件
- 四套前端 README/AGENTS 的版本基线行同步为升级后事实。
- React SSR AGENTS.md 更新 ESLint 兼容线复验记录(2026-09-28 复核结论 + 上游支持状态说明)。
- 四套前端
pnpm-workspace.yaml各增加一条trustPolicyExclude。 pnpm-lock.yaml四套全部随pnpm install更新,未重建、未删除。- cwa-docs core 文档同步 11 处版本事实(React/Vue3 模板的 Vite 与 Vue 版本、ReactSSR 的 Next.js 版本、Vue3SSR 的 Vue 版本)。
- springboot-template README 版本原则行同步 archunit 1.5.1。
验证结果
| 验证项 | 结果 |
|---|---|
| React SPA:typecheck / lint / peers check | 通过 |
| React SPA:test / coverage / 组件守卫 / build / E2E | 43/43 通过;覆盖率门禁通过;19 组件守卫通过;构建通过;E2E 3/3 |
| Vue 3 SPA:typecheck / lint / peers check | 通过 |
| Vue 3 SPA:test / coverage / 组件守卫 / build / E2E | 32/32 通过;覆盖率门禁通过;19 组件守卫通过;构建通过;E2E 3/3 |
| React SSR:typecheck / lint | 通过 |
| React SSR:test / coverage / 组件守卫 / build / E2E | 29/29 通过;覆盖率门禁通过;13 组件守卫通过;构建通过;E2E 4/4(生产 SSR + hydration 冒烟) |
| Vue 3 SSR:typecheck / lint | 通过 |
| Vue 3 SSR:test / coverage / 组件守卫 / build / E2E | 25/25 通过;覆盖率门禁通过;27 组件守卫通过;构建通过;E2E 4/4(生产 SSR + hydration 冒烟) |
后端:generate.sh 生成 + ./mvnw clean verify | 通过:98/98(Testcontainers 真实 MySQL/Redis、JaCoCo "All coverage checks have been met"、ArchUnit);本地执行带两处环境适配,见注意事项 |
| cwa-stack:--version / --help / list / 单元测试 | 78/78 通过;五个模板标识与四个预设齐全 |
cwa-docs:npm run build | 通过 |
