构建失败别急着清缓存:从依赖图反查可疑变更点
构建失败时不必急于清缓存重跑。先查依赖图和缓存命中记录,锁定上次成功构建后的可疑变更点,可省去全量重编。区分真失效、假失效与传播性失效,从失败节点反查重编集合,利用缓存日志做时间切片,重点排查链接输入变化与ABI不一致。清缓存只是重置而非修复,应作为最后手段。
共 4 篇文章
构建失败时不必急于清缓存重跑。先查依赖图和缓存命中记录,锁定上次成功构建后的可疑变更点,可省去全量重编。区分真失效、假失效与传播性失效,从失败节点反查重编集合,利用缓存日志做时间切片,重点排查链接输入变化与ABI不一致。清缓存只是重置而非修复,应作为最后手段。
依赖闭包索引是降低 monorepo 调试助手误报的关键。通过解析 package.json 的 workspace 依赖构建传递闭包,将索引范围限定在当前服务及其真实依赖的本地包,实测误报率下降约八成。相比全仓索引,该方法更贴合调试认知边界;相比目录约定,能覆盖共享包中的真实缺陷。团队协作场景可进一步采用全仓索引加归属标签过滤,并在提示词中注入包边界约束以抑制跨包类型相似导致的误报。
Nx 与 Turborepo 在缓存和依赖图方面路线不同:Turborepo 以内容哈希和任务拓扑实现极简,Nx 则通过分布式缓存、可插拔哈希输入和项目图 API 构建平台级能力。文章从缓存命中、依赖图、CI 集成和选型建议四方面对比,指出小团队适合 Turborepo,大团队或复杂场景下 Nx 长期收益更高。
从全量生成到按需触发,接口文档生成策略的核心在于声明式依赖图和文件指纹。通过 Turborepo 的依赖感知能力,结合 `turbo.json` 的任务声明和 `--filter` 差分计算,能将文档生成范围精确到受影响的服务,并利用远程缓存大幅减少重复计算,使 CI 耗时从 11 分钟降至 1 分 12 秒。