OpenClaw · dependency-cruiser · JSON · 远程 Mac · Monorepo
2026 OpenClaw 前端实战:
远程 Mac 上解析 dependency-cruiser JSON 输出、生成 PR 环形依赖门禁摘要并与合并流程对齐的可复现步骤
2026-04-30
架构门禁与平台工程
约 9 分钟
给要把 Monorepo 环形依赖做成可合并闸的团队:固定 dependency-cruiser 的 JSON、违规等级与模块数上限表,网关或脚本触发后与 ESLint 类块合并回传 PR。延伸阅读 ESLint 与 Stylelint JSON 合并摘要、Oxlint 与 Biome 合并摘要、knip 未使用导出摘要。首页、资费、帮助、购买均可免登录打开。
依赖图闸 · 制品可举证 · 与合流对齐
痛点拆解
- 终端刷屏。默认文本报告难进评审上下文,Reviewer 不知是否阻断合并。
- 阈值口头化。「尽量少环」无法审计,跨团队复现时争议大。
- 多闸孤岛。lint 摘要与依赖图分两帖,维护者要手工对齐提交哈希。
壹 原始 JSON 与折叠摘要
评审对象钉为「环、边数、模块数」三列。远程 Mac 与 CI 共用同条 npx depcruise 与同 --config。
| 维度 | 贴整段 JSON | OpenClaw 折叠摘要 |
|---|---|---|
| 可读性 | modules 数组长,环难扫。 | 表头固定,环路径截断加余量行。 |
| 合流 | 与 lint 块格式不一。 | 统一 envelope:tool、level、summary_md。 |
| 举证 | 易夹绝对路径。 | 评论相对路径;全文进制品 URL。 |
npx depcruise src --config .dependency-cruiser.cjs \
--output-type json > artifacts/depcruise/graph.json
贰 违规等级与模块数上限
下表为常用起点,可调;写入 ci/thresholds/depcruise.json 供脚本与网关共读。
| 等级 | 条件 | 单环模块数上限 | 合并策略 |
|---|---|---|---|
| S0 告知 | 仅测试或 story 目录内环。 | ≤8 个模块展示在表内。 | 不挡合并;PR 打标签。 |
| S1 警告 | 生产源码环或跨包但未触公共 API。 | 表内最多列 5 条环,余量计数。 | 要求跟进工单;可选挡合并。 |
| S2 阻断 | workspace 之间 barrel 互指或环上边数大于阈值。 | 任一环若 >12 模块直接 S2。 | 退出码非零;禁止合入主干。 |
可引用口径
全图扫描涉及的不同源文件数若超过两千,应在摘要头注明「大图截断」,避免Reviewer误判覆盖率。
可引用口径
同一拉取请求内 depcruise 节与 lint 节共用同一 commit_sha 字段,合并脚本按字典序拼块,便于 diff。
叁 HowTo:网关或脚本触发
脚本:scripts/depcruise/pr-summary.mjs 读 json 写 artifacts/pr/depcruise-summary.md。网关:POST OpenClaw,带 Markdown、阈值版与 HMAC;重试截断,密钥不进日志。
落地六步
- 版本化
.dependency-cruiser.cjs,写好includeOnly与exclude。 - json 落约定相对路径,勿写 Runner 家目录。
- jq 或 Node 读
summary等,出三列表与cycle_count。 - 读阈值 JSON 映射 S0/S1/S2 设退出码。
- 网关验签后并 ESLint 块;或
cat后gh pr comment。 - 评论用
<!-- openclaw-depcruise:SHA -->锚点幂等更新。
肆 与合并流程对齐
Runbook 与 ESLint Stylelint 合并文对齐:先 lint 块再 depcruise,再润色一句可否合并。远程 Mac 复现争议 PR 时同分支同 npm ci 键重放脚本。
- 阈值已审、锚点可搜、制品规则写 README。
- 与 knip 摘要交叉:删 barrel 后环变,工单同链。
- 大图仓优先真机跑图缩差。
更多文章:博客列表。