2026 OpenClaw 前端实战:
远程 Mac 上网关合并 ESLint 与 Stylelint JSON 为单一门禁摘要并回传 PR 可读评论
面向要把静态检查纳入 CI 与 AI 摘要的前端团队:Node 22 与 OpenClaw 下合并 ESLint JSON 与 Stylelint 为单一门禁摘要,远程 Mac 网关判阈后回传PR 摘要。含四块 H2、矩阵、HowTo 与脚本;延伸阅读 knip 摘要、Playwright 分片;首页、帮助、博客。
痛点拆解
- 结论分散。ESLint 与 Stylelint 各跑各的 JSON,AI 与值班同学难一眼判过线。
- 评论冗长。整份 JSON 贴进 PR,移动端不可读,也易触长度上限。
- 环境分叉。本地与 CI、与远程机 Node 或配置不一致,复现「明明绿了却红了」。
本地快易与 CI 分叉;CI 省事占队列;远程 Mac 作 OpenClaw 执行面时与审查机一致。统一相对产物路径,网关只读 JSON 决策。
| 方案 | 收益 | 成本与注意 |
|---|---|---|
| 仅 CI | 与合并闸天然一体 | 队列与缓存键要稳定,否则摘要抖动 |
| 远程 Mac 网关 | 与团队租用节点同构,便于对齐 OpenClaw | 调度与签名校验要写清 |
| 混合 | CI 产 JSON,网关注释合并与回传 | 制品权限与截断策略必须统一 |
01 本地与 CI 输出格式统一
约定 artifacts/eslint.json 与 artifacts/stylelint.json,CI 与远程 Mac 同 Node 22 与锁文件。Flat Config 下设稳定环境变量,Stylelint 用 JSON formatter 落盘;跨平台差异大时用小脚本写文件。
mkdir -p artifacts
export ESLINT_USE_FLAT_CONFIG=1
npx eslint . -f json -o artifacts/eslint.json
npx stylelint "**/*.{css,scss}" --formatter json > artifacts/stylelint.json
可引用:网关与 AI 只认上述相对路径,禁止写死本机绝对路径。
02 网关侧聚合与阈值
OpenClaw 下游读两份 JSON,归并 eslint 与 stylelint 两桶,按 severity 计 error 与 warning,写 lint_summary.json 与退出码。阈值可 error 大于零即失败 或 加权分 超上限;warning 可仅进摘要。
可引用:字段 issue_count、by_source、top_paths、exit_code 固定。
03 失败重试与截断策略
OOM 或 IO 抖动时对聚合步骤指数退避最多三次,勿默认全量重跑 lint。评论按行与字节截断,每源附「余量已省略」;全文 JSON 放公开制品或免登录地址,勿贴需登录的私链。
可引用:每源至多二十条,余量一行计数。
04 Git 提供方评论 API 思路
细粒度令牌调 REST 或 GraphQL:按 PR 号找带 HTML 注释锚(如 <!-- openclaw-lint-summary -->)的机器人评论,有则更新无则建,幂等。密钥只进 CI 或网关;日志打码。评论用 Markdown 小表给两源计数与 exit_code。
05 可复现 HowTo 与脚本片段
- 远程与 CI 同
engines.node,缓存键含平台架构。 - 跑上文两条命令写 JSON。
- 聚合出
lint_summary.json与退出码。 - 渲染短表填入 PR 模板。
- PR 号加固短 SHA 为幂等键,调评论 API 或签名 Webhook。
node --version # 期望 v22.x node scripts/merge-lint-json.mjs \ --eslint artifacts/eslint.json \ --stylelint artifacts/stylelint.json \ --out artifacts/lint_summary.json
路径与模板约定同 knip PR 摘要。
更多文章:博客列表。