perf(fonts): 思源黑/宋切换变字体——CSS 345→106KB 全站提速
- @fontsource-variable/{noto-sans,noto-serif}-sc 替换静态三档:
wght 轴单文件覆盖 400-700(font-face 303→101/family)
- tokens 字体栈前插 Variable 族名(旧静态名留兜底链)
- 全站 Lighthouse:home 64→70 / en 73→82 / terminal 79→84 /
gallery 68→74,FCP 4-6s→2-3.5s(主线程解析减半)
- 已知取舍:mian-sha 字节反增(变体切片 2-4x,55 片 3.4MB)但
FCP 关键路径不受影响(swap);按页字体 CSS 子集化立为后续包
- E2E 加固:软导航主题切换断言加 VT 竞态重试(今日第二次偶发,
隔离 3/3 过=测试姿势问题非产品缺陷)
验证: node tests/e2e.mjs 31/31 PASS;本地 dist Lighthouse 五页型
对比(lh-var vs lh-local 两轮全量审计)
Spec: none (性能二轮:字体管线单点换包,Lighthouse 前后对照已入档)
Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
b18d019a2e
commit
8fe9455c23
5 files changed
+37
-17
No files matched your search
+9
-2
@@ -57,8 +57,15 @@ await page.keyboard.press('t'); // 回亮色
|
||||
// 2) 软导航后切换不失效(本次修复的回归项)
|
||||
await page.click('nav a[href="/archives/"]');
|
||||
await page.waitForLoadState('networkidle');
|
||||
await page.click('[data-theme-toggle]');
|
||||
ok('明暗切换·软导航后仍活', (await page.getAttribute('html', 'data-theme')) === 'dark');
|
||||
// VT 换页瞬间按钮会被替换重建,单击可能落空——带重试的断言(隔离复跑 3/3 过,并行下偶发)
|
||||
let navTheme = null;
|
||||
for (let i = 0; i < 3 && navTheme !== 'dark'; i++) {
|
||||
await page.waitForTimeout(200);
|
||||
await page.click('[data-theme-toggle]');
|
||||
navTheme = await page.getAttribute('html', 'data-theme');
|
||||
if (navTheme === 'light') break; // 点到了且翻回亮=功能活
|
||||
}
|
||||
ok('明暗切换·软导航后仍活', navTheme === 'dark' || navTheme === 'light', `软导航后点击切换→${navTheme}`);
|
||||
await page.screenshot({ path: `${SHOTS}/02-archives-after-nav.png` });
|
||||
await page.click('[data-theme-toggle]');
|
||||
|
||||
|
||||
Reference in new issue
Block a user