Skip to content
目录

工程化管理:Monorepo、构建、测试、发布

1. Monorepo 管理策略

来自根 package.jsonscripts/build

  • Yarn v1 workspace 管理多包
  • build 脚本仅对部分 Node 目标包做编译(并非全仓库)
  • JS 包采用统一结构约束(src/、wrapper entry、exports 约束)

意义:降低包间风格漂移、减少发布期不可预期差异。

2. 构建与类型产物链路

scripts/build/README.md + scripts/build/config.js

  • 编译会输出 dist/、Flow defs、可选 TS defs
  • 通过配置表显式纳入参与构建的包
  • 使用统一 babel/ts 目标(Node 侧)

这是“按需编译 + 统一产物格式”的典型工程化策略。

3. 测试体系分层

可从根脚本与 rn-tester 文档观察到:

  • JS 层:Jest、TS 类型检查、ESLint、Flow
  • Native 层:Android/iOS 测试任务
  • 集成层:RNTester(含 unit/integration)
  • 发布前验证:release testing 脚本

技术讨论中可以强调“不是单测覆盖,而是多语言多平台测试网”。

4. 发布流水线

scripts/releases/README.md

  • set-version 统一 bump workspace 与 native 相关版本信息
  • release commit 触发发布链路
  • 主分支特殊版本占位(1000.0.0)与实际发布版本解耦

优点:主干开发与版本发布节奏分离,降低冲突。

5. 典型工程治理思路(可迁移到业务团队)

  • 建立“跨语言产物前置生成”机制(类似 codegen/prebuild)
  • 把脚本式约定沉淀到插件(类似 Gradle Plugin / Pods helper)
  • 把“本地能跑”提升为“CI 可复制可发布”的标准路径

MIT License.