v4.21.0
·
31 commits
to main
since this release
Focus: Content-first mobile delivery — about 1s faster FCP/LCP on slow connections for SSR builds.
Changes
- 📱 Content-first mobile delivery: SSR-prerendered pages no longer emit any JS
modulepreloadlink (22 per page before) and the entry module is fetched withfetchpriority=low— the render-blocking CSS now owns slow links, since the first paint ships as server-rendered HTML and needs no JavaScript - 🔤 Font preloads slimmed to the latin subset only, at
fetchpriority=low— latin-ext glyphs still load on demand viaunicode-range - ⚡ Early Hints are now stylesheet-only and finally include the bundler's main CSS (the previous quote-sensitive regex missed minified attributes)
- 🐢 Below-the-fold code blocks and tables lazy-render on phones via
content-visibility: auto(anchors, find-in-page and scroll integrity verified; prose stays eager to keep scroll anchoring stable) - 🔕 The SPA-era route-preload plugin stays quiet in SSR builds (its modulepreloads are counterproductive there)
- ✅ Validated on slow-4G emulation with median-of-3 Lighthouse runs: mobile score 69 → 81 (home) and 87 (guide page), FCP −990ms, LCP −908ms, CLS unchanged; 335 tests passing