2026 OpenClaw 前端实战:
远程 Mac 解析 import 图谱与 tree-shaking 告警,生成 PR 可读摘要回传
评审要的是依赖故事而非整份 stats.json:谁拖进重子图、barrel 是否挡了摇树、相对基线是否新增回归。HowTo:在远程 Mac 用 OpenClaw 归一 bundle_graph.json,槽位生成 pr_bundle_graph_summary.md,最小权限回传 PR 或 Webhook。可配 体积阈值摘要、Source Map 摘要、构建缓存优化;不写需登录控制台深链。
痛点:① 体积缺依赖语境难决策 ② barrel/副作用致告警洪水缺对比模板 ③ 本机跑大 stats 易卡死需 Worker。
| 打包工具族 | 典型机读产出 | 图谱侧重点 |
|---|---|---|
| webpack / Rspack | stats.json |
chunk 边、异步理由全。 |
| Vite / Rolldown | 插件导出 chunk 图 | 统一插件口径;SSR/client 双构建分别落盘。 |
| Rollup | visualizer JSON | TopN 友好;缺字段时补边。 |
01 环境准备
对齐 CI 的 Node 与锁文件;分析用 NODE_ENV=production。备 jq 或流式解析防巨形 stats 爆内存。产出只写入 .openclaw/reports/<git-sha>/ 并忽略;另存 baseline.pointer.json 指向 main 基线制品。
单次检视:一装一构建一解析即退出,OpenClaw 只负责 Markdown。README.openclaw.md 写死 webpack --json、Rspack/Vite 钩子等同款命令。
02 构建产物解析流程
生产向构建产出 stats 或模块图;先拷 raw/ 再解析可免重复编译。bundle_graph.json 含 schema、gitSha、edges、warnings:边记来源、仓库相对路径、静/动因;告警收未用导出与 sideEffects 提示,堆栈走 Source Map 文。
大仓按 git diff 过滤;全量归档 bundle_graph.full.json,Agent 只读 pruned。
解析失败或告警超阈非零退出;大文件流式读取。
多 HTML 入口时为边或子图打 entryId,避免 OpenClaw 把无关入口合并进同一摘要。
03 摘要模板
投影 pr_bundle_graph_summary.md 五段:指纹、Top 引入、摇树告警、相对基线新增、单一跟进项(拆 barrel、懒加载、改 sideEffects)。
- 篇幅控在约四百词等效;长表进制品。
- 禁绝对路径;体积报表只附链接不堆数字。
04 与 CI/PR 评论联动思路
同一 SHA 绑检出与制品;Mac 定时或 CI 传制品后解析。GitHub 用显式权限的 GITHUB_TOKEN 或单仓 PAT;正文藏 <!-- openclaw-bundle-graph:SHA --> 幂等;IM 走签名 Webhook。
curl -sS -X POST "$BUNDLE_GRAPH_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "$(jq -n --rawfile body pr_bundle_graph_summary.md --arg sha "${GITHUB_SHA:-local}" '{text: $body, sha: $sha}')"
429 退避;失败写 status.txt。
05 权限与超时
密钥走环境变量;令牌收窄到评论与读内容。外曝回调要 TLS、HMAC、限速。
timeout 包 analyze 与解析;SPA 常见二十至四十分钟墙钟。内存紧时检视任务单独降 parallelism 与线程池,不与日常开发混用。
Apple Silicon Worker 上解析巨型 stats 时坚持流式管线,避免整文件读成单串撑爆堆。
06 FAQ
图≠运行时?编译期静态图;写清入口与是否 analyze 专配。
告警多体积平?合门禁用字节阈;告警仅分诊。
重复评论?HTML 注释幂等、枚举已有评论或目录锁。
稳定 bundle_graph.json + 槽位 Markdown + SHA 幂等回传。远程 Mac 扛长构建与大 JSON,免占笔记本。