SuperAPI AI 工具集

react-native-brownfield-migration

编程与开发

查看项目

更新于 10-15 15:38

技能介绍

用途

本技能用于在已经做出采用棕地迁移(brownfield migration)决策之后,将现有原生 iOS 或 Android 应用增量迁移到 React Native 或 Expo。它基于 @callstack/react-native-brownfield,提供从初始设置到分阶段宿主集成的规范化工作流。

如果用户仍在棕地、绿地、基于检查点的路径、推迟或不迁移之间做选择,应先使用 assess-react-native-migration。

主要能力

  • 评估应用状态并选择 Expo 或裸 React Native 路径。
  • 使用 @callstack/react-native-brownfield 完成初始设置。
  • 从 React Native 源应用打包 RN 产物(iOS XCFramework / Android AAR)。
  • 将一个 RN 界面集成到宿主应用并验证启动与运行时。
  • 按功能或屏幕重复集成,实现增量发布。

使用方式

路径选择门(必须首先执行):

  • 如果尚不存在 React Native 应用,使用 Expo 创建路径:expo-create-app.md -> expo-quick-start.md。
  • 如果已存在 React Native 应用,检查 package.json 和 app.json:若存在 expo 或要求 Expo 插件工作流,则走 Expo;若使用原生文件夹和直接 RN CLI 工作流且无 Expo 路径要求,则走裸 RN。
  • 若仍不明确,提出一个消歧问题。
  • 继续时只使用一条路径。

迁移策略:

  1. 评估应用状态并选择 Expo 或裸路径。
  2. 使用 @callstack/react-native-brownfield 完成初始设置。
  3. 从 RN 源应用打包 RN 产物(XCFramework/AAR)。
  4. 将一个 RN 界面集成到宿主应用并验证启动/运行时。
  5. 按功能/屏幕重复集成,实现增量发布。

代理护栏(全局):

  • 先选择一条路径(Expo 或裸),不要混用步骤。
  • 使用文档中的占位符(<framework_target_name>、<android_module_name>、<registered_module_name>),并从项目文件中解析。
  • 在进入宿主集成前验证每个打包命令。
  • 在依赖任何标志表之前运行 npx brownfield <command> --help;帮助输出优先。
  • 将稳定的项目设置一次性写入 brownfield.config.*,而不是重复标志。
  • 长平台片段和 CLI 选项细节优先参考官方文档。
  • 尽可能让宿主应用与直接 React Native API 隔离(外观模式)。
  • 启动/运行时验证时,使用 agent-device 打开宿主应用、导航到 RN 界面、捕获快照/截图并收集设备证据。若缺失且验证需要,通过环境批准的受信路径安装,或请用户安装或启用。

适用场景

  • 实现已接受的从纯原生应用到 React Native 或 Expo 的增量迁移。
  • 为 Expo 或裸 React Native 项目创建棕地集成流程。
  • 使用 @callstack/react-native-brownfield 执行初始设置。
  • 从 React Native 应用生成 iOS XCFramework 产物。
  • 从 React Native 应用生成并发布 Android AAR 产物。
  • 将生成的产物集成到宿主 iOS/Android 应用。

限制

  • 仅在已决定采用棕地迁移后使用;迁移路径决策应先用 assess-react-native-migration。
  • 每个任务只使用一条路径(Expo 或裸),除非用户明确要求迁移或比较。
  • 共享宿主与 RN 状态、类型化 RN 到原生导航需使用 brownie / brownfield-navigation 技能,它们来自另一个仓库,按名称调用;若未安装则回退到官方文档。
  • 具体 CLI 标志、配置文件和产物路径以官方文档和 --help 输出为准。