vega-multi-tv-migration
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseVega Multi-Platform Migration
Vega多平台迁移
Overview
概述
Migrate Vega OS (Fire TV) apps to multi-platform React Native monorepo with 70-85% code reuse across Android TV, Apple TV, and Vega OS.
将Vega OS(Fire TV)应用迁移至多平台React Native monorepo,在Android TV、Apple TV和Vega OS之间实现70-85%的代码复用。
When to Apply
适用场景
Use this skill when user mentions:
- Migrating Vega/Fire TV app to other platforms
- Building multi-platform TV application
- Converting single-platform TV app to monorepo
- Adding Android TV or Apple TV support
- Sharing code between TV platforms
- Setting up Yarn workspaces for TV apps
当用户提及以下需求时,可使用该技能:
- 将Vega/Fire TV应用迁移至其他平台
- 构建多平台TV应用
- 将单平台TV应用转换为monorepo
- 添加Android TV或Apple TV支持
- 在TV平台间共享代码
- 为TV应用搭建Yarn工作区
Phase Priority Guide
阶段优先级指南
| Priority | Phase | Impact | When to Use |
|---|---|---|---|
| 1 | Analysis | CRITICAL | Starting migration, no existing analysis |
| 2 | Implementation | CRITICAL | Have analysis, need monorepo structure |
| 3 | Platform Support | HIGH | Have working Vega monorepo, adding platforms |
| 4 | Configuration | MEDIUM | Troubleshooting build/resolution issues |
| 优先级 | 阶段 | 影响程度 | 适用场景 |
|---|---|---|---|
| 1 | 分析 | 关键 | 启动迁移项目,尚无现有分析成果 |
| 2 | 实现 | 关键 | 已有分析成果,需搭建monorepo结构 |
| 3 | 平台支持 | 高 | 已有可用的Vega monorepo,需新增平台支持 |
| 4 | 配置 | 中 | 排查构建/依赖解析问题 |
Quick Decision Tree
快速决策树
User has existing Vega app?
├─ YES → Do they have migration analysis?
│ ├─ NO → Start Phase 1 (Analysis)
│ └─ YES → Is monorepo set up?
│ ├─ NO → Start Phase 2 (Implementation)
│ └─ YES → Start Phase 3 (Platform Support)
└─ NO → Starting from scratch?
└─ YES → Skip Phase 1, start Phase 2 with new projectUser has existing Vega app?
├─ YES → Do they have migration analysis?
│ ├─ NO → Start Phase 1 (Analysis)
│ └─ YES → Is monorepo set up?
│ ├─ NO → Start Phase 2 (Implementation)
│ └─ YES → Start Phase 3 (Platform Support)
└─ NO → Starting from scratch?
└─ YES → Skip Phase 1, start Phase 2 with new projectQuick Reference
快速参考
Critical: Project Structure
关键:项目结构
bash
undefinedbash
undefinedVerify monorepo structure exists
Verify monorepo structure exists
ls -la packages/shared packages/vega packages/expotv
ls -la packages/shared packages/vega packages/expotv
Check Yarn workspaces configured
Check Yarn workspaces configured
grep -A5 "workspaces:" package.json
undefinedgrep -A5 "workspaces:" package.json
undefinedCritical: Dependency Classification
关键:依赖分类
Common patterns for analysis:
- Shared: Business logic, UI components, utilities, state management
- Platform-specific: Navigation, video players, DRM, native modules
- VMRP-compatible: Standard RN libraries that map to Vega equivalents
分析阶段的常见模式:
- 共享模块:业务逻辑、UI组件、工具函数、状态管理
- 平台专属模块:导航、视频播放器、DRM、原生模块
- VMRP兼容模块:可映射为Vega等效模块的标准RN库
High: VMRP Configuration
高优先级:VMRP配置
Quick check if VMRP is working:
bash
undefined快速检查VMRP是否正常工作:
bash
undefinedShould see @vega-tv/react-native-module-resolver-preset
Should see @vega-tv/react-native-module-resolver-preset
grep "vmrp" packages/vega/babel.config.js
undefinedgrep "vmrp" packages/vega/babel.config.js
undefinedReferences
参考文档
Phase 1: Analysis (analysis-*)
阶段1:分析(analysis-*)
| File | Impact | Description |
|---|---|---|
| PHASE1_ANALYSIS.md | CRITICAL | Codebase analysis, dependency classification, migration planning |
Use when: Starting migration, no existing analysis document
| 文件 | 影响程度 | 描述 |
|---|---|---|
| PHASE1_ANALYSIS.md | 关键 | 代码库分析、依赖分类、迁移规划 |
适用场景:启动迁移项目,尚无现有分析文档
Phase 2: Implementation (impl-*)
阶段2:实现(impl-*)
| File | Impact | Description |
|---|---|---|
| PHASE2_IMPLEMENTATION.md | CRITICAL | Monorepo scaffolding, code migration, VMRP setup with template references |
Use when: Have analysis, ready to build monorepo structure
| 文件 | 影响程度 | 描述 |
|---|---|---|
| PHASE2_IMPLEMENTATION.md | 关键 | Monorepo脚手架搭建、代码迁移、带模板参考的VMRP配置 |
适用场景:已有分析成果,准备构建monorepo结构
Phase 3: Platform Support (platform-*)
阶段3:平台支持(platform-*)
| File | Impact | Description |
|---|---|---|
| PHASE3_PLATFORM_SUPPORT.md | HIGH | Android TV and Apple TV implementation |
Use when: Have working Vega monorepo, adding new platforms
| 文件 | 影响程度 | 描述 |
|---|---|---|
| PHASE3_PLATFORM_SUPPORT.md | 高 | Android TV和Apple TV的实现 |
适用场景:已有可用的Vega monorepo,需新增平台支持
Templates
模板
All configuration templates in assets/templates/ with companion docs:
.md- - Yarn workspaces setup
root-package.json - - TypeScript project references
root-tsconfig.json - - Dependency deduplication (CRITICAL)
yarnrc.yml - +
shared-package.json- Shared package config with rules.md - - Vega Metro with monorepo resolution
vega-metro.config.js - +
expotv-package.json- Expo TV package config.md - +
expotv-app.json- Expo TV configuration with plugins.md - - Expo Metro with TV extensions
expotv-metro.config.js
所有配置模板位于assets/templates/,并配有对应的文档:
.md- - Yarn工作区配置
root-package.json - - TypeScript项目引用配置
root-tsconfig.json - - 依赖去重(关键)
yarnrc.yml - +
shared-package.json- 共享包配置及规则.md - - 支持monorepo解析的Vega Metro配置
vega-metro.config.js - +
expotv-package.json- Expo TV包配置.md - +
expotv-app.json- 带插件的Expo TV配置.md - - 带TV扩展的Expo Metro配置
expotv-metro.config.js
Problem → Skill Mapping
问题→技能映射
| Problem | Start With |
|---|---|
| Need to analyze existing Vega app | PHASE1_ANALYSIS.md |
| Have analysis, need monorepo setup | PHASE2_IMPLEMENTATION.md → templates |
| Monorepo exists, adding Android TV | PHASE3_PLATFORM_SUPPORT.md |
| Metro resolution errors | PHASE2_IMPLEMENTATION.md → Metro config |
| Duplicate React versions | PHASE2_IMPLEMENTATION.md → .yarnrc.yml |
| VMRP not mapping imports | PHASE2_IMPLEMENTATION.md → VMRP section |
| TypeScript path errors | PHASE2_IMPLEMENTATION.md → TypeScript config |
| Native module integration | PHASE3_PLATFORM_SUPPORT.md → Native Modules |
| Build configuration issues | PHASE2_IMPLEMENTATION.md → Configuration Files |
| Starting from scratch | PHASE2_IMPLEMENTATION.md (skip Phase 1) |
| 问题 | 起始阶段 |
|---|---|
| 需要分析现有Vega应用 | PHASE1_ANALYSIS.md |
| 已有分析成果,需搭建monorepo | PHASE2_IMPLEMENTATION.md → 模板 |
| 已有monorepo,需添加Android TV支持 | PHASE3_PLATFORM_SUPPORT.md |
| Metro解析错误 | PHASE2_IMPLEMENTATION.md → Metro配置 |
| React版本重复 | PHASE2_IMPLEMENTATION.md → .yarnrc.yml |
| VMRP未映射导入路径 | PHASE2_IMPLEMENTATION.md → VMRP章节 |
| TypeScript路径错误 | PHASE2_IMPLEMENTATION.md → TypeScript配置 |
| 原生模块集成 | PHASE3_PLATFORM_SUPPORT.md → 原生模块 |
| 构建配置问题 | PHASE2_IMPLEMENTATION.md → 配置文件 |
| 从零开始构建 | PHASE2_IMPLEMENTATION.md(跳过阶段1) |
Workflow
工作流程
- Use the decision tree above to determine the starting phase
- Load the appropriate reference file for that phase
- Follow Quick Start → Deep Dive pattern in each reference
- Verify at each phase's checkpoint before moving to the next phase
- Use VALIDATION_CHECKLIST.md for comprehensive verification
- 使用上述决策树确定起始阶段
- 加载对应阶段的参考文档
- 遵循各参考文档中的「快速开始→深入探索」模式
- 在进入下一阶段前,完成当前阶段的检查点验证
- 使用VALIDATION_CHECKLIST.md进行全面验证
Attribution
说明
Based on Vega OS multi-platform migration patterns and React Native monorepo best practices.
基于Vega OS多平台迁移模式及React Native monorepo最佳实践。