2026-10-19
更新概览
- React SSR 模板:ESLint
9.39.5→10.13.0,采用现有eslint-config-next@16.4.0的官方兼容处理。 - 为三个精确插件版本补充 ESLint peer 范围,严格冻结安装及
pnpm peers check --json通过。 - React SPA、Vue 3 SPA、Vue 3 SSR 与 Spring Boot:本次无依赖变化。
- React SSR 验证:类型检查、无缓存 lint、29 个单元与组件测试、覆盖率、13 个组件测试守卫、生产构建及 4 个 E2E 用例全部通过。
React SSR 模板 (vite_react_ssr_init)
依赖版本变更
| 依赖 | 旧版本 | 新版本 | 类型 | 影响说明 |
|---|---|---|---|---|
| eslint | ^9.39.5 | ^10.13.0 | major | 迁移到官方仍维护的 ESLint 10 主线,更新核心解析、作用域与缓存依赖 |
唯一发生版本变化的直接依赖为 ESLint。Next.js、eslint-config-next、React、TypeScript、Tailwind 插件、Node 与 pnpm 基线均保持原值。
兼容处理
Next.js 官方说明明确指出,eslint-config-next@16.4.0 起支持 ESLint 10。现有配置包含旧 React/import 规则上下文 API 以及 Babel scope manager 的兼容处理,因此保留官方 core-web-vitals、TypeScript 配置和 Tailwind 规则。
以下插件的上游 peer 声明仍未包含 ESLint 10:
| 插件 | 当前版本 | 项目级修正 |
|---|---|---|
| eslint-plugin-react | 7.37.5 | 在原 ESLint peer 范围后补充 ^10.13.0 |
| eslint-plugin-import | 2.32.0 | 同上 |
| eslint-plugin-jsx-a11y | 6.10.2 | 同上 |
使用 pnpm 官方支持的 peer overrides,在 pnpm-workspace.yaml 中按“精确插件版本 > eslint”限定修正范围,并将配置记录进锁文件。保留严格 peer 检查及既有供应链策略。
除了对现有源码运行 lint,还用三组故意违规的内存样例检查规则行为:react/jsx-key、import/no-anonymous-default-export、jsx-a11y/alt-text 均正确检出对应问题,且未出现插件加载或运行错误。
模板影响
不涉及业务源码、路由或会话行为变更。Server Component 默认、"use client" 边界与 src/server 特权请求约定保持原样,沿用现有质量阈值与官方规则集。
React SPA 模板 (vite_react_init)
本次无依赖变化。 已使用 ESLint 10,本次不调整该模板。
Vue 3 SPA 模板 (vite_vue3_init)
本次无依赖变化。 继续使用 Oxlint 与 oxfmt。
Vue 3 SSR 模板 (vite_vue3_ssr_init)
本次无依赖变化。 已使用 ESLint 10,本次不调整该模板。
Spring Boot 后端模板 (springboot-template)
本次无依赖变化。 不涉及后端构建、镜像或部署。
文档与锁文件
- React SSR 的
package.json、pnpm-workspace.yaml与pnpm-lock.yaml同步更新。锁文件仅变更 ESLint 及其依赖链和相应 peer 解析结果,未删除或重建锁文件。 - React SSR 的 README 与 AGENTS.md 同步 ESLint 10.13.0 基线,并说明版本受限的 peer 修正需要随插件升级复核。
- 更新本文及
core/ReactSSR模板.md的工具链说明,同时将该页滞后的 Next.js 基线说明对齐模板现有的 16.4.0。 - cwa-stack 五个独立模板映射与四个全栈预设核对正常,
--version、--help、list正常;无需修改生成器或发布 CLI。
验证结果
| 检查 | 结果 |
|---|---|
pnpm install --frozen-lockfile --strict-peer-dependencies | 通过,供应链策略校验通过 |
pnpm peers check --json | 通过,无 bad、missing 或 conflicts |
pnpm typecheck | 通过 |
pnpm exec eslint . --no-cache --max-warnings 0 | 通过,无错误或警告 |
| React/import/无障碍规则违规样例 | 3/3 正确检出,未发生插件运行错误 |
pnpm test | 13 个测试文件、29 个测试通过 |
pnpm test:coverage | 29 个测试通过;语句 89.43%、分支 77.58%、函数 91.66%、行 90.08%,满足原阈值 |
pnpm test:component-coverage | 13 个组件通过 |
| 修改文件的 oxfmt 检查 | package.json、pnpm-workspace.yaml、README.md、AGENTS.md 全部通过 |
CI=1 pnpm test:e2e | 包含生产构建与新启动的 SSR 预览服务,4/4 通过 |
cwa-docs npm run build | 通过,升级日志正常收录 |
cwa-docs npm run check:seo | 通过,65 页、65 sitemap、54 RSS、64 llms 条目 |
E2E 覆盖匿名访问重定向、登录、文档页面渲染和 404 页面。其余未变更模板本次未重复运行质量门禁。
注意事项
- 三个插件的上游 peer 声明尚未更新,本次是依赖 Next.js 官方兼容处理并经项目验证的本地元数据修正,不代表插件已原生声明支持 ESLint 10。插件版本变化时需复核;上游明确支持后移除对应 override。
- ESLint 9 已结束官方维护,支持状态见 ESLint 版本支持说明。
- 现有 SSR 预览命令在
output: standalone配置下仍有 Next.js 启动方式提示,本次生产构建和 E2E 均成功,该提示未阻塞模板验证。 - VitePress 仍有部分产物分块超过 500 kB 的提示;文档构建与 SEO 验收成功,本次不调整分块告警阈值。
