驗證 wweb.dev 的變更
完全靜態的 Astro 網站搭配 React 孤島(islands)—— 驗證意味著在瀏覽器中載入建置後的頁面,並與水合後的孤島進行互動。
建置 + 啟動
yarn install # 若伺服器依賴遺失(server.mjs 需要 compression/express)
yarn build # 靜態建置 → dist/(已內建 TZ=UTC)
yarn serve # 生產伺服器於 http://localhost:4321(非 astro preview)
node server.mjs 在 Yarn PnP 相關環境下會直接失敗 —— 一律透過 yarn serve 執行。在背景中執行;使用 curl -s -o /dev/null -w "%{http_code}" http://localhost:4321/<route> 進行探測。
驅動頁面
儲存庫中未內建 Playwright。在一個臨時目錄中安裝 playwright-core,並使用系統的 Chrome(chromium.launch({ channel: 'chrome', headless: true }))—— 無需下載瀏覽器。孤島元件設定為 client:visible,因此在斷言之前請等待孤島渲染完成後的選擇器出現,並為動畫預留約 1 秒的時間。
對於生成器工具,有用的檢查如下:
- 計算注入的
<style>輸出的計算後樣式(動畫名稱、位置、尺寸) - textarea 的
.inputValue()取得可複製的 HTML/CSS 程式碼 - 在 1440px 和約 480px 的螢幕擷取(部分工具側邊欄在行動版會切換為
column-reverse)
注意事項
- 控制台應無任何錯誤。Vite 資產內嵌已停用(
astro.config.mjs中的assetsInlineLimit: 0),因為 data-URI 字型違反 CSP 的font-src 'self'—— 如果 data-URI CSP 錯誤再次出現,表示該設定已遺失。 yarn test:parity需要test/baseline/(生產環境 HTML 快照),但該目錄未納入版本控制;缺少時 harness 會回報 ENOENT 錯誤。無論如何,這也無法取代瀏覽器驗證。