用途:该技能面向在大型 monorepo 中使用 Bazel 的工程团队,提供生产级配置与优化模式。适用场景包括为 monorepo 搭建 Bazel、配置远程缓存/远程执行、优化构建时间、编写自定义 Bazel 规则、调试构建问题以及迁移到 Bazel。
主要能力:介绍 Bazel 架构与关键概念(Target、Package、Label、Rule、Aspect),并给出可直接参考的模板,包括 WORKSPACE 配置(加载 rules_js、rules_python、nodejs 工具链、npm_translate_lock 等)、.bazelrc 配置(构建设置、性能参数、磁盘与仓库缓存、远程缓存与远程执行、平台配置、CI 配置、测试与覆盖率设置)、TypeScript 与 Python 库的 BUILD 文件写法、Docker 自定义规则,以及远程执行所需的 platform 与 toolchain 定义。
使用方式:通过 bazel query 做依赖分析,例如 bazel query "deps(//apps/web:web)"、bazel query "rdeps(//..., //libs/utils:utils)"、bazel query "kind('._test', //...)" 等;性能分析使用 bazel build //... --profile=profile.json 配合 bazel analyze-profile,也可使用 --execution_log_json_file 与 --memory_profile。最佳实践包括使用细粒度目标、固定依赖版本、启用远程缓存、合理使用 visibility、每个目录编写 BUILD 文件;避免用 glob 管理依赖、提交 bazel- 目录或忽略构建警告。
限制:资料未提供具体收费、价格、平台支持范围与性能提升幅度等数据;实际配置需结合自身项目调整,示例中的哈希值、URL 与实例地址均为占位内容。