Initial TrueGrowth source import
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# Change: 收口发布期静态资源加载
|
||||
|
||||
## Why
|
||||
当前发布链路存在两个稳定性缺口:一是运行时仍会尝试访问会被 CORS 拦截的 CDN 源,二是服务器 HTML 可能早于关键静态资源在 CDN 就绪,导致首屏或懒加载资源在发版窗口失配。
|
||||
|
||||
## What Changes
|
||||
- 收口运行时静态资源主链路为 `Cache First -> jsDelivr -> 源站`
|
||||
- 将 `unpkg` 移出运行时 fetch 决策链,仅保留为发布产物分发渠道
|
||||
- 为构建增加稳定 `manualChunks`,固定高频延后模块分组
|
||||
- 为发布脚本增加“关键 CDN 资产就绪后再部署服务器”的阻塞门禁
|
||||
- 补强启动边界校验,防止高频延后模块重新回流入口链路
|
||||
|
||||
## Impact
|
||||
- Affected specs: `smart-cdn-loading`, `startup-performance`
|
||||
- Affected code: `apps/web/src/sw`, `apps/web/public/cdn-config.js`, `apps/web/vite.config.ts`, `scripts/deploy-hybrid.js`, `scripts/validate-startup-bundle.js`
|
||||
@@ -0,0 +1,29 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 运行时只使用可用的 CDN 源
|
||||
系统 SHALL 仅让可在浏览器与 Service Worker 中稳定访问的 CDN 源参与运行时静态资源加载。
|
||||
|
||||
#### Scenario: 不可用 CDN 不进入运行时候选集
|
||||
- **WHEN** Service Worker 选择当前版本静态资源的远程源
|
||||
- **THEN** 仅返回运行时可用的 CDN 源
|
||||
- **AND** 不会尝试已知会被浏览器或 Worker 拦截的 CDN 源
|
||||
|
||||
### Requirement: 服务器部署必须等待关键 CDN 资产就绪
|
||||
系统 SHALL 在部署服务器 HTML 前,确认当前版本关键静态资源已能从运行时 CDN 访问。
|
||||
|
||||
#### Scenario: CDN 未就绪时阻塞服务器部署
|
||||
- **WHEN** npm 发布已完成,但关键 JS/CSS 资产仍未能从运行时 CDN 成功获取
|
||||
- **THEN** 发布流程持续等待
|
||||
- **AND** 不继续部署服务器 HTML
|
||||
|
||||
#### Scenario: CDN 就绪后继续部署
|
||||
- **WHEN** 当前版本关键入口静态资源均已从运行时 CDN 返回成功
|
||||
- **THEN** 发布流程继续执行服务器部署
|
||||
|
||||
### Requirement: 启动边界依赖链必须稳定
|
||||
系统 SHALL 为高频延后模块产出稳定 chunk 分组,并阻止它们重新回流到入口依赖链。
|
||||
|
||||
#### Scenario: 构建校验入口依赖链
|
||||
- **WHEN** 运行启动边界校验脚本
|
||||
- **THEN** 脚本检查入口 HTML 及静态依赖图
|
||||
- **AND** 若发现高频延后模块分组重新进入入口依赖链则返回失败
|
||||
@@ -0,0 +1,14 @@
|
||||
## 1. Runtime CDN
|
||||
- [x] 1.1 收口 Service Worker CDN 源,只保留运行时可用源参与静态资源拉取
|
||||
- [x] 1.2 更新主线程 CDN 探测脚本,避免继续输出不可用运行时源
|
||||
- [x] 1.3 更新相关单测,覆盖新的候选源与回源顺序
|
||||
|
||||
## 2. Startup Boundary
|
||||
- [x] 2.1 为 web 构建增加稳定 `manualChunks`
|
||||
- [x] 2.2 让 idle prefetch manifest 基于稳定 chunk 分组工作
|
||||
- [x] 2.3 扩展启动边界校验,守护入口依赖链
|
||||
|
||||
## 3. Release Gate
|
||||
- [x] 3.1 在发布脚本中加入关键 CDN 资产就绪轮询
|
||||
- [x] 3.2 仅在 CDN 关键资产 ready 后继续部署服务器 HTML
|
||||
- [x] 3.3 更新发布摘要,反映新的运行时加载顺序
|
||||
Reference in New Issue
Block a user