#!/usr/bin/env bash # Lighthouse 移动端真测:对本地 staging 五页跑分(Phase 5c T3)。 # 走 pnpm dlx 而非装进 devDependencies:本车道边界只有本目录与产物,不动 package.json。 # 用法:run.sh [staging基址,默认 http://127.0.0.1:18743] [产物目录,默认 /tmp/e2e-shots/lighthouse] set -euo pipefail BASE="${1:-http://127.0.0.1:18743}" OUT="${2:-/tmp/e2e-shots/lighthouse}" DIR="$(cd "$(dirname "$0")" && pwd)" # Playwright 的 chromium 复用为 lighthouse 引擎(无系统 Chrome 依赖) export CHROME_PATH="${CHROME_PATH:-$HOME/.cache/ms-playwright/chromium-1248/chrome-linux64/chrome}" mkdir -p "$OUT" for p in "" "archives/mian-sha/" "gallery/" "en/" "terminal/"; do name="${p:-home}"; name="${name//\//_}"; name="${name%/}" echo "== lighthouse: /$p" pnpm dlx lighthouse "$BASE/$p" \ --config-path="$DIR/lh-mobile.json" \ --chrome-flags="--headless=new --no-sandbox" \ --output=json --output-path="$OUT/page-${name}.json" \ --quiet >/dev/null || echo "WARN: /$p 未完成(产物可能缺失)" done python3 "$DIR/summarize.py" "$OUT"