| name | taro2rn |
| description | Taro 小程序代码转 React Native 完整工具包。提供组件映射、API 映射、样式转换规则和已知问题解决方案。兼容 Taro 3.x 与 React Native 0.72+。 |
| when_to_use | 用户需要将 Taro 项目代码迁移至 React Native 时触发。Trigger phrases: '转 RN' / '转换 RN' / 'taro to rn' / 'taro2rn' / '迁移成原生' / 'port Taro to RN' / 'Taro 转 native' / '从 Taro 迁出'。也包括询问 Taro/RN 组件映射、样式映射、迁移问题。Do NOT use for: uni-app 或 Vue 小程序迁移、纯新建 RN 项目(无 Taro 来源)、单文件实验性转换、纯 RN 项目调试。 |
| allowed-tools | Read Write Edit Glob Grep |
Taro to React Native 转换
快速开始
第一步:处理 taro2rnTODO.md
检查项目根目录是否存在 taro2rnTODO.md:
| 情况 | 操作 |
|---|
| 存在 | 读取进度,跳至第二步 |
| 不存在 | 执行初始化流程(见下方) |
初始化流程
- 询问用户配置:
| 配置项 | 默认值 | 说明 |
|---|
| 项目名称 | 当前目录名 | 标识项目 |
| 设计稿宽度 | 750 | 750 或 1242 |
| RN 应用路径 | . | React Native 应用相对路径 |
- 基于模板生成 taro2rnTODO.md:读取
assets/TODO_TEMPLATE.md,替换占位符后写入项目根目录。
第二步:执行转换
进入实际转换前 ultrathink:先确认设计稿宽度、检查 rpx 工具函数是否已封装、识别项目是否为 Monorepo(pnpm-workspace.yaml 或 workspaces 字段)。这三项判断错了后续每次转换都要返工。
- 读取 Taro 源码,分析组件结构
- 按场景加载对应转换规则(见下方索引)
- 遇到问题查阅对应子域 known-issues 文件
- 完成后更新
taro2rnTODO.md
转换规则(按需加载)
主要转换规则
已知问题(按子域加载,不要一次性读全部)
加载策略:先读 TRANSFORM_RULES.md 速查表 → 不够用时按场景加载详细 references → 遇到具体问题只加载对应子域的 known-issues-*.md。
转换工作流
1. 处理 taro2rnTODO.md → 初始化或读取现有进度
2. 确认设计稿标准 → 750 用 rpx(),1242 用 rpx1242()
3. 读取 Taro 源码 → 分析组件结构
4. 应用转换规则 → 按需加载对应 references
5. 处理特殊情况 → 按子域查阅 known-issues-*.md
6. 更新 taro2rnTODO.md → 标记完成
文档结构
taro2rn/
├── SKILL.md # 入口(本文件)
├── references/
│ ├── TRANSFORM_RULES.md # 规则索引 + 速查表
│ ├── components.md # 组件映射详细规则
│ ├── api.md # API/生命周期映射
│ ├── styles.md # 样式转换规则
│ ├── im-layout.md # IM 页面布局方案
│ ├── KNOWN_ISSUES.md # 已知问题索引(旧链接兼容)
│ ├── known-issues-dependencies.md # 依赖兼容
│ ├── known-issues-styles.md # 样式差异
│ ├── known-issues-api.md # API/键盘/React 版本
│ └── known-issues-monorepo.md # Monorepo 特有
└── assets/
└── TODO_TEMPLATE.md # 项目进度模板