2026-10-08
更新概览
- React SPA 模板:15 项 patch/minor 升级(Vite 8.3.3、ESLint 10.12.0、Vitest 5.0.3、orval 8.40.0、radix-ui 1.7.0 等),全部门禁通过。
- Vue 3 SPA 模板:13 项 patch/minor 升级(Vite 8.3.3、vue-tsc 3.3.12、oxlint 1.87.0、oxfmt 0.72.0、reka-ui 2.11.0 等);升级过程暴露并修复了 postcss 8.5.28/8.5.29 双副本引发的定义文件冲突(
pnpm dedupe收敛)。 - React SSR 模板:Next.js 16.3.6 → 16.4.0,并落地 ESLint 9 → 10.12.0——官方 release notes 确认
eslint-config-next自 16.4 起支持 ESLint 10,本地 lint 实测通过、react 插件规则确认生效,解除了 9 月中旬以来"冻结在 ESLint 9"的兼容线。 - Vue 3 SSR 模板:12 项 patch/minor 升级;Nuxt 4.6.0 候选被拒——其依赖 cssnano 9.3.x 家族(约 27 个包)于 2026-10-05 从 staged publish 迁移到 trusted publisher,触发 pnpm
no-downgrade信任策略且逐包级联;模板已有的trustPolicyIgnoreAfter: 10080(7 天)意味着 2026-10-12 后拦截自动失效,届时可零白名单成本升级。 - Spring Boot 后端模板:本次无依赖变化。Spring Boot parent 4.1.1 仍为 4.1 线最新稳定版(4.2 仅有 M1/M2 里程碑,不采纳);springdoc 3.1.1、archunit 1.5.1、spotless 3.10.3、jacoco 0.8.15 均已是 registry 最新。
- 本次验证:四套前端 typecheck / lint / test / coverage / 组件测试守卫 / build / Playwright E2E 全部通过;后端生成项目
./mvnw clean verify通过(含 Testcontainers、JaCoCo "All coverage checks have been met"、ArchUnit);cwa-stack CLI 映射核对与后端生成冒烟通过。
React SPA 模板 (vite_react_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| vite | ^8.3.1 | ^8.3.3 | patch | 构建内核补丁 |
| vitest / @vitest/coverage-v8 / @vitest/ui | ^5.0.2 | ^5.0.3 | patch | 测试栈补丁 |
| eslint | ^10.11.0 | ^10.12.0 | minor | 代码规范 |
| @eslint-react/eslint-plugin | ^5.20.8 | ^5.24.8 | minor | React 专项规则 |
| orval | ^8.38.0 | ^8.40.0 | minor | OpenAPI 契约生成 |
| radix-ui | ^1.6.7 | ^1.7.0 | minor | UI 原语 |
| lucide-react | ^1.48.0 | ^1.52.0 | minor | 图标库 |
| @vitejs/plugin-react | ^6.1.1 | ^6.1.2 | patch | React 插件补丁 |
| immer | ^11.1.18 | ^11.1.21 | patch | 状态不可变更新 |
| shadcn | ^4.21.0 | ^4.21.3 | patch | CLI 工具 |
| jsdom | ^30.1.1 | ^30.1.2 | patch | 测试环境 |
| web-vitals | ^6.2.2 | ^6.2.3 | patch | 性能指标 |
| @types/node | ^24.19.0 | ^24.19.1 | patch | Node 24 线类型(拒绝 26.x,保持与 engines 一致) |
升级内容说明
全部为 patch/minor,无破坏点。保留项:TypeScript 7.0.2(大版本,Go 原生编译器,vue-tsc/插件生态未跟进)、MSW 3.0.2(大版本,留待专项迁移)、@types/node 26 线(与模板 Node 24 基线不符)。
模板影响
README 技术栈同步(Vite 8.3.3、lucide-react 1.52.0、ESLint 10.12.0)。E2E 3/3 通过。
Vue 3 SPA 模板 (vite_vue3_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| vite | ^8.3.1 | ^8.3.3 | patch | 构建内核补丁 |
| vitest / @vitest/coverage-v8 / @vitest/ui | ^5.0.2 | ^5.0.3 | patch | 测试栈补丁 |
| vue-tsc | ^3.3.11 | ^3.3.12 | patch | 类型检查 |
| orval | ^8.38.0 | ^8.40.0 | minor | OpenAPI 契约生成 |
| reka-ui | ^2.10.5 | ^2.11.0 | minor | UI 原语 |
| @lucide/vue | ^1.48.0 | ^1.52.0 | minor | 图标库 |
| oxlint | ^1.85.0 | ^1.87.0 | minor | 静态检查 |
| oxfmt | ^0.70.0 | ^0.72.0 | minor | 格式化 |
| jsdom | ^30.1.1 | ^30.1.2 | patch | 测试环境 |
| web-vitals | ^6.2.2 | ^6.2.3 | patch | 性能指标 |
| @types/node | ^24.19.0 | ^24.19.1 | patch | Node 24 线类型 |
升级内容说明
升级后 pnpm typecheck 在 vite.config.ts 报 TS2769/TS2321。定位结论:与 vite/vue-tsc 版本无关,而是锁文件中 postcss 8.5.28 与 8.5.29 双副本并存——autoprefixer 的插件类型绑定 8.5.28,Vite 的 postcss 配置类型绑定 8.5.29,AtRuleProcessor 等同名类型互不相容。pnpm update postcss && pnpm dedupe 收敛到单副本后恢复。该问题对任何执行过 in-range 更新的 pnpm 项目都可能复现,值得留意。
模板影响
README 技术栈表同步(Vite 8.3.3)。E2E 3/3 通过。
React SSR 模板 (vite_react_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| next | ^16.3.6 | ^16.4.0 | minor | SSR 框架 |
| eslint | ^9.39.5 | ^10.12.0 | major | 代码规范(解除冻结) |
| eslint-config-next | ^16.3.6 | ^16.4.0 | minor | Next 官方 ESLint 配置 |
| vitest / @vitest/coverage-v8 / @vitest/ui | ^5.0.2 | ^5.0.3 | patch | 测试栈补丁 |
| orval | ^8.38.0 | ^8.40.0 | minor | OpenAPI 契约生成 |
| radix-ui | ^1.6.7 | ^1.7.0 | minor | UI 原语 |
| lucide-react | ^1.48.0 | ^1.52.0 | minor | 图标库 |
| oxfmt | ^0.70.0 | ^0.72.0 | minor | 格式化 |
| @vitejs/plugin-react | ^6.1.1 | ^6.1.2 | patch | React 插件补丁 |
| shadcn | ^4.21.0 | ^4.21.3 | patch | CLI 工具 |
| sass / jsdom / @types/node | 详见 lockfile | patch | 补丁 |
升级内容说明
ESLint 10 落地是本次核心变化。9 月的两轮验证(2026-09-17、2026-09-28)确认 eslint-config-next@16.3.6 拉取的 eslint-plugin-react@7.37.5 在 ESLint 10 下 detectReactVersion 崩溃,因此模板冻结在 ESLint 9。本次 Next 16.4.0 release notes 明确"eslint-config-next 支持 ESLint 10";本地实测 pnpm lint 通过,并用 --print-config 确认 react/display-name、react/jsx-key 等插件规则在 ESLint 10 下真实加载(eslint-plugin-react 7.37.5 仍在依赖树中)。AGENTS.md 的 ESLint 条款已改写为"使用 ESLint 10 + 复现崩溃时的降级回退指引"。
Next 16.4 行为变化提示:严格路由匹配默认开启、Turbopack 生产构建默认开启导出名混淆、Pages Router 弃用 React 18。模板使用 App Router 且 E2E 覆盖生产构建 + 服务端启动 + 首屏 + hydration,4/4 通过,未受影响。
模板影响
README 技术栈同步(Next.js 16.4.0、ESLint 10.12.0、oxfmt 0.72.0;顺带修正陈旧的 Zustand 5.0.14 → 实际 5.0.15)。AGENTS.md Lint 约定重写。E2E 4/4 通过。
Vue 3 SSR 模板 (vite_vue3_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| vitest / @vitest/coverage-v8 / @vitest/ui | ^5.0.2 | ^5.0.3 | patch | 测试栈补丁 |
| vue-tsc | ^3.3.11 | ^3.3.12 | patch | 类型检查 |
| orval | ^8.38.0 | ^8.40.0 | minor | OpenAPI 契约生成 |
| reka-ui | ^2.10.5 | ^2.11.0 | minor | UI 原语 |
| @lucide/vue | ^1.48.0 | ^1.52.0 | minor | 图标库 |
| oxlint | ^1.85.0 | ^1.87.0 | minor | 静态检查 |
| oxfmt | ^0.70.0 | ^0.72.0 | minor | 格式化 |
| @typescript-eslint/parser | ^8.70.1 | ^8.71.1 | minor | ESLint 解析器 |
| eslint | ^10.11.0 | ^10.12.0 | minor | 代码规范 |
| @nuxt/test-utils | ^4.3.2 | ^4.3.3 | patch | 测试工具 |
| @tanstack/vue-table | ^9.2.4 | ^9.2.6 | patch | 表格 |
| sass / jsdom / @types/node | 详见 lockfile | patch | 补丁 |
升级内容说明
Nuxt 4.6.0 候选被拒(保留 4.5.2):安装被 pnpm ERR_PNPM_TRUST_DOWNGRADE 拦截。根因是其构建链 @nuxt/vite-builder@4.6.0 → cssnano@9.3.2 起,cssnano 全家族(cssnano、cssnano-preset-default、cssnano-utils 及约 24 个 postcss-* 子插件)于 2026-10-05 从 staged publish 迁移到 trusted publisher,pnpm 视为"信任降级"。核实过 npm 元数据:维护者名单未变(cssnano 官方团队)、发布节奏正常,属发布方式迁移而非接管事件;但受影响包约 27 个,为此在模板固化大面积 trustPolicyExclude 白名单不可取。模板 pnpm-workspace.yaml 已配置 trustPolicyIgnoreAfter: 10080(7 天),2026-10-12 后拦截自动失效,届时直接 pnpm update nuxt 即可,无需任何白名单。
h3 保留 1.x:Nuxt 4.6 官方说明仍基于 Nitro v2/h3 v1,nuxt/server 导入是为 h3 v2(Nuxt 5)铺路的可选前瞻方式;模板显式声明 h3: ^1.15.11 维持不变。
模板影响
README 技术栈同步(@lucide/vue 1.52.0、Oxlint 1.87.0、ESLint 10.12.0、oxfmt 0.72.0;Nuxt 版本行保持 4.5.2)。E2E 4/4 通过。
Spring Boot 后端模板 (springboot-template)
本次无依赖变化。
- Spring Boot parent 4.1.1 已是 4.1 线最新稳定版;4.2.0-M1/M2 为里程碑版,按模板基线策略不采纳。
- springdoc-openapi 3.1.1、archunit-junit5 1.5.1、spotless 3.10.3、jacoco 0.8.15 均为 Maven Central 最新,无需改动。
- Dockerfile(eclipse-temurin:25)、compose.yml(mysql:8.4 / redis:8-alpine)、CI(temurin 25)、Maven Wrapper(3.9.16)均无需变动。
验证
scripts/generate.sh 生成 verify-run 项目(102 个文件占位符替换,无残留),./mvnw clean verify BUILD SUCCESS:98 个单元测试 + Testcontainers(真实 MySQL/Redis)集成测试 + JaCoCo 覆盖率门禁(输出 "All coverage checks have been met")+ ArchUnit 架构测试全部通过。
文档与锁文件
- 四套前端
pnpm-lock.yaml随package.json同步更新,安装无 peer/engine 警告、无 deprecated 包。 - React SSR:README 技术栈、AGENTS.md Lint 约定更新。
- React SPA / Vue SPA / Vue SSR:README 技术栈版本同步。
- Spring Boot:README/AGENTS/docs 无需变化。
- cwa-stack(CLI):catalog.json 五个模板映射、
lib/catalog.js交互分组与标识核对一致,node bin/cwa-stack.js --version / list正常;模板依赖升级不触及 CLI 版本与发布。
验证结果
| 模板 | typecheck | lint | test | coverage | 组件守卫 | build | E2E |
|---|---|---|---|---|---|---|---|
| React SPA | ✅ | ✅ | 43/43 | ✅ | 19 组件 ✅ | ✅ | 3/3 ✅ |
| Vue 3 SPA | ✅ | ✅ | 32/32 | ✅ | 19 组件 ✅ | ✅ | 3/3 ✅ |
| React SSR | ✅ | ✅(ESLint 10) | 29/29 | ✅ | 13 组件 ✅ | ✅(Next 16.4) | 4/4 ✅ |
| Vue 3 SSR | ✅ | ✅ | 25/25 | ✅ | 27 组件 ✅ | ✅ | 4/4 ✅ |
| Spring Boot | — | Spotless ✅ | 98 单元 + Testcontainers 集成 | ✅ All coverage checks met | ArchUnit ✅ | ✅ | — |
覆盖率阈值未做任何下调。
注意事项
- postcss 双副本教训:in-range 升级后如遇类型冲突报
Two different types with this name exist,先查.pnpm是否存在多副本,pnpm dedupe优先于降级包版本。 - 2026-10-12 待办:cssnano 家族 7 天信任窗口过后,升级 Nuxt 至 4.6.0(
pnpm update nuxt+ 全套门禁)。
