2026 OpenClaw 前端實戰:
遠端 Mac 解析打包產物 import 圖譜與 tree-shaking 告警,產出 PR 可讀摘要回傳
遠端 Mac production 建置時,import 圖譜與 tree-shaking 告警常散落終端與工件,PR 難對齊。本文 HowTo:正規化 bundle_graph.json,OpenClaw 產 pr_bundle_graph_summary.md 回傳 PR/Webhook。延伸:Source Map PR 摘要、trace/HAR 摘要、視覺回歸摘要。
01 環境準備
痛點一:僅貼終端片段,無法還原「誰 import 了誰」與 barrel 拉動。痛點二:未鎖定 lockfile 時,遠端 Mac 與 CI 圖譜不一致。痛點三:全量 stats.json 暴肥,上傳與解析逾時。
鎖定 Node 與 lockfile;production 腳本啟用 stats 或視覺化 JSON。約定 .openclaw/reports/<git-sha>/ 僅機讀檔,附 manifest.json(commit、bundler 版本、mode、Node 與套件管理員主版本、runner 標籤)。完整 stats 可放獨立夜間 job,避免阻塞主線 CI,便於稽核追蹤與事後復盤。堆疊對照見 Source Map 摘要。
02 建構產物解析流程
webpack/Rspack:stats.json 擷取 modules/chunks/reasons。Vite/Rollup:visualizer JSON 或建置 meta。合併:unused export、sideEffects 警告與邊寫入 bundle_graph.json(schemaVersion);monorepo 可依 diff 裁子圖。
① 標註 mode 與 entry,避免與 runtime 動態 import 混淆。② PR 內嵌摘要宜數百 KB 內,其餘連結工件。③ 對基線須同一壓縮與 sourcemap 策略。
| 信號來源 | 擅長釐清 | PR 內建議呈現 |
|---|---|---|
| stats/reasons | 模組邊、chunk 合併、重複相依 | 前 N 名匯入者、循環邊列表(截斷) |
| tree-shaking 日誌 | 未使用匯出、副作用套件誤判 | 警告摘要表+對應 package.json 欄位 |
| 體積閾值(gzip/brotli) | 是否值得為警告開 issue | 與 main 分支差異百分比與絕對值 |
03 摘要模板
OpenClaw 讀 bundle_graph.json 產 pr_bundle_graph_summary.md:建置矩陣、頂部匯入者、barrel/re-export、警告與假設、複查指令;剔除絕對路徑,模組用相對路徑;模板納版控。測試敘事可併讀 trace/HAR 摘要。
04 與 CI/PR 評論聯動思路
觸發須與圖譜 同一 SHA。REST 單一則 PR 留言,<!-- openclaw-bundle:$SHA --> 冪等;或 POST Webhook 由受信服務代寫。429/5xx 指數退避;勿內嵌 SSO 控制台深鏈。視覺報告冪等見 視覺回歸 HowTo。
- 在遠端 Mac 啟用可重現建置並產出 stats/JSON 圖譜至約定目錄。
- 解析並正規化為 bundle_graph.json(含 schemaVersion 與 manifest)。
- 以 OpenClaw 模板產出 pr_bundle_graph_summary.md,並做 schema/長度檢查。
- 將大檔上傳工件儲存,PR 正文只保留摘要與連結。
- 選擇冪等 PR 留言或 Webhook 回傳,實施退避與重試策略。
05 權限與逾時
採細粒度權杖,最小 pull_requests:write;Actions 用 GITHUB_TOKEN 並於 workflow 宣告權限。fork 勿在不可信 PR 暴露寫入權杖。圖譜生成、JSON 解析、OpenClaw 呼叫設硬逾時與資源上限;可改夜間批次。
06 FAQ
與瀏覽器載入不一致?stats 為編譯期視圖;動態 import 未必展開,請標 entry/mode。
警告當阻斷?應配體積差與閾值;barrel/polyfill 多假陽性。
stats 過大?串流解析、裁子圖或只上傳工件;PR 留 Top-K 表。
捏造路徑?字面量僅能來自 bundle_graph.json,CI schema 驗證後再回傳。
鎖檔 manifest → bundle_graph.json → OpenClaw Markdown → 冪等 PR/Webhook;最小權杖與逾時。遠端 Apple Silicon 節點見 購買公開頁免登入。