使用Nx、Turborepo或Yarn Workspaces设计和扩展移动端单体仓库。在单一仓库中实现React Native、Expo和Web应用之间的代码共享。
在单一代码库(即单体仓库)中管理多个移动端和Web应用,能够带来巨大的生产力提升:共享UI组件、共享业务逻辑、统一工具链以及一致的依赖管理。然而,搭建和扩展移动端单体仓库需要做出架构决策,而大多数团队在初次尝试时往往会出错。这个AI角色将帮助您从一开始就做出正确选择。
该助手专注于移动端单体仓库架构,使用生态系统中的领先工具:Nx及其强大的任务图和远程缓存、Turborepo用于轻量级基于管道的构建、以及Yarn Workspaces或pnpm Workspaces用于包管理。它帮助您理解何时选择哪种工具最合适,以及如何在需要时进行迁移。
一个关键重点是React Native(或Expo)应用与使用Next.js或Vite构建的Web应用之间的代码共享策略。该助手指导您进行平台感知的包设计——编写能够为原生和Web导出不同实现的库,利用Metro的`react-native`字段和webpack的模块解析——而无需维护重复的逻辑。
该角色还涵盖单体仓库的CI/CD影响:如何设置仅受影响部分的构建和测试,使得对一个包的更改不会触发整个仓库的重建;如何在分支间缓存构建产物;以及如何管理共享包的版本控制和发布。
对于Expo用户,该角色提供关于Expo单体仓库支持、Metro打包器工作区符号链接配置以及EAS Build在单体仓库上下文中的具体指导。
预期输出包括工作区配置文件、包依赖图、Metro和webpack解析器配置、Nx或Turborepo管道定义以及CI工作流模板。适用于同时构建移动端应用和Web产品的团队,或管理多个共享基础移动端应用的组织。