2026-10-17
更新概览
- React SPA 模板:
packageManager钉定 pnpm 11.20.0 → 12.14.0,全部门禁通过。 - Vue 3 SPA 模板:同上,pnpm 12.14.0,全部门禁通过。
- React SSR 模板:同上,pnpm 12.14.0,全部门禁通过(含生产构建 + hydration E2E)。
- Vue 3 SSR 模板:同上,pnpm 12.14.0,全部门禁通过。
- Spring Boot 后端模板:本次无依赖变化(Maven 体系,与 pnpm 无关)。
- 本次验证:四套前端 typecheck / lint / test / coverage / 组件测试守卫 / build / Playwright E2E(4×7 项)全部通过;cwa-stack CLI 模板映射与只读命令核对通过。
React SPA 模板 (vite_react_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| packageManager (pnpm) | 11.20.0 | 12.14.0 | toolchain | 包管理器钉定升级,sha512 完整性随钉定更新 |
升级内容说明
仅升级包管理器钉定,依赖树零变化(pnpm install 输出 Already up to date)。pnpm 12 的三个行为变化对本模板的影响:
- lockfile 结构变化:pnpm 12 将
packageManager钉定的 pnpm 本身作为packageManagerDependencies记录进锁文件新首段(含 42 个平台@pnpm/exe变体,用于钉定工具链的可复现安装)。原锁文件内容整体顺延为第二个 YAML 文档,逐字节保留(已对比验证)。CI 中pnpm/action-setup@v4未显式指定版本、自动读取packageManager字段,无需改动。 - peer 解析提速:pnpm 12 重写 peer 依赖解析(官方数据 2–3 倍提速),锁文件成为依赖图的纯函数,重复安装产出字节级一致的锁文件。
- sha512 完整性核对:12.14.0 的钉定哈希经
npm pack下载 tarball 实算 sha512 与 registry integrity 双向核对一致。
模板影响
README 徽标与技术栈、AGENTS.md 基线行同步 pnpm 12.14.0。E2E 3/3 通过。
Vue 3 SPA 模板 (vite_vue3_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| packageManager (pnpm) | 11.20.0 | 12.14.0 | toolchain | 包管理器钉定升级 |
升级内容说明
与 React SPA 相同:依赖树零变化,锁文件新增 packageManagerDependencies 首段、原内容顺延保留。README 包管理器基线行、AGENTS.md 基线行同步。
模板影响
E2E 3/3 通过。
React SSR 模板 (vite_react_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| packageManager (pnpm) | 11.20.0 | 12.14.0 | toolchain | 包管理器钉定升级 |
升级内容说明
同上。SSR 关注点不变:Server Component 默认、"use client" 边界、特权请求留在 src/server,升级不触及任何源码。生产构建(Next 静态/动态路由混合渲染)与 hydration E2E 均通过。
模板影响
README 徽标与依赖清单、AGENTS.md pnpm 指引同步。E2E 4/4 通过。
Vue 3 SSR 模板 (vite_vue3_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| packageManager (pnpm) | 11.20.0 | 12.14.0 | toolchain | 包管理器钉定升级 |
升级内容说明
同上。Nuxt/Nitro/Vue SSR/Pinia 源码零变化;.client 插件与 import.meta.client 保护边界不受影响。生产构建 + 服务端启动 + 首屏 + hydration E2E 通过。
模板影响
README 徽标与依赖清单、AGENTS.md pnpm 指引同步。E2E 4/4 通过。
Spring Boot 后端模板 (springboot-template)
本次无依赖变化。 Maven 体系模板,不使用 pnpm;Spring Boot parent、springdoc、archunit、Docker 基础镜像、Maven Wrapper 均维持既有版本。
文档与锁文件
- 四套前端
pnpm-lock.yaml:首段新增packageManagerDependencies(pnpm 12.14.0 及其 42 个平台二进制变体条目),原 importers/packages/settings 段落逐字节保留为第二文档;lockfileVersion保持 '9.0',无格式迁移。 - 四套前端 README(徽标/技术栈/包管理器基线)与 AGENTS.md(pnpm 版本指引)同步为 12.14.0。
- Spring Boot:README/AGENTS/docs 无需变化。
- cwa-stack(CLI):catalog.json 五个模板映射核对一致;模板内环境检查
pnpmMajor >= 11对 pnpm 12 天然兼容,无需改动;模板依赖升级不触及 CLI 版本与发布。
验证结果
| 模板 | typecheck | lint | test | coverage | 组件守卫 | build | E2E |
|---|---|---|---|---|---|---|---|
| React SPA | ✅ | ✅ | 43/43 | ✅ | 19 组件 ✅ | ✅ | 3/3 ✅ |
| Vue 3 SPA | ✅ | ✅ | 32/32 | ✅ | 19 组件 ✅ | ✅ | 3/3 ✅ |
| React SSR | ✅ | ✅ | 29/29 | ✅ | 13 组件 ✅ | ✅ | 4/4 ✅ |
| Vue 3 SSR | ✅ | ✅ | 25/25 | ✅ | 27 组件 ✅ | ✅ | 4/4 ✅ |
覆盖率阈值未做任何下调。cwa-stack CLI:node bin/cwa-stack.js --version(1.0.1)与 list 正常。
注意事项
- pnpm 12 锁文件双文档结构:钉定
packageManager后首次安装,锁文件会出现两个 YAML 文档——首段是钉定工具链自身的packageManagerDependencies,次段是原有内容。这是 pnpm 12 的预期结构,不是锁文件损坏;回滚到 pnpm 11 安装即可还原为单文档。 - CI 兼容性:
pnpm/action-setup@v4不带显式版本时自动读取packageManager字段,钉定升级后 CI 无需改动;若你的流水线显式传了version:参数,需要同步改为 12.14.0 或移除该参数。 - 低版本 pnpm 用户提示:新锁文件为双文档 YAML,pnpm 11 及以下无法识别首段的
packageManagerDependencies(会忽略未知键,实际安装仍按次段解析),但钉定校验(Corepack/nvmd)会强制使用 12.14.0,建议使用者通过npm i -g pnpm@12或 Corepack 自动获取正确版本。
