SKILL.md
readonlyread-only
name
vega-multi-tv-migration
description
Migrate Vega OS (Amazon Fire TV) applications to multi-platform React Native monorepo supporting Android TV, Apple TV, and other platforms. Covers analysis, implementation, and native module integration. Use when migrating TV apps to support multiple platforms or building new multi-platform TV applications.
Vega 多平台遷移
概述
將 Vega OS(Fire TV)應用程式遷移至多平台 React Native 單一儲存庫,在 Android TV、Apple TV 及 Vega OS 之間達到 70-85% 的程式碼重複使用率。
適用時機
當使用者提及以下內容時使用此技能:
- 將 Vega/Fire TV 應用程式遷移至其他平台
- 建置多平台電視應用程式
- 將單平台電視應用程式轉換為單一儲存庫
- 新增 Android TV 或 Apple TV 支援
- 在電視平台之間共用程式碼
- 為電視應用程式設定 Yarn Workspaces
階段優先順序指南
| 優先順序 | 階段 | 影響 | 使用時機 |
|---|---|---|---|
| 1 | 分析 | 關鍵 | 開始遷移,尚無現有分析 |
| 2 | 實作 | 關鍵 | 已有分析,需要單一儲存庫結構 |
| 3 | 平台支援 | 高 | 已有可運作的 Vega 單一儲存庫,新增平台 |
| 4 | 設定 | 中 | 疑難排解建置/解析問題 |
快速決策樹
使用者有現有 Vega 應用程式?
├─ 是 → 他們有遷移分析嗎?
│ ├─ 否 → 從階段 1(分析)開始
│ └─ 是 → 單一儲存庫已設定?
│ ├─ 否 → 從階段 2(實作)開始
│ └─ 是 → 從階段 3(平台支援)開始
└─ 否 → 從頭開始?
└─ 是 → 跳過階段 1,從階段 2 開始新專案
快速參考
關鍵:專案結構
# 確認單一儲存庫結構存在
ls -la packages/shared packages/vega packages/expotv
# 檢查 Yarn Workspaces 是否已設定
grep -A5 "workspaces:" package.json
關鍵:相依性分類
常見的分析模式:
- 共用:商業邏輯、UI 元件、工具程式、狀態管理
- 平台特定:導航、影片播放器、DRM、原生模組
- VMRP 相容:可對應至 Vega 等效元件的標準 RN 函式庫
高:VMRP 設定
快速檢查 VMRP 是否正常運作:
# 應看到 @vega-tv/react-native-module-resolver-preset
grep "vmrp" packages/vega/babel.config.js
參考資料
階段 1:分析(analysis-*)
| 檔案 | 影響 | 說明 |
|---|---|---|
| PHASE1_ANALYSIS.md | 關鍵 | 程式碼庫分析、相依性分類、遷移規劃 |
使用時機:開始遷移,尚無現有分析文件
階段 2:實作(impl-*)
| 檔案 | 影響 | 說明 |
|---|---|---|
| PHASE2_IMPLEMENTATION.md | 關鍵 | 單一儲存庫搭建、程式碼遷移、VMRP 設定及範本參考 |
使用時機:已有分析,準備建置單一儲存庫結構
階段 3:平台支援(platform-*)
| 檔案 | 影響 | 說明 |
|---|---|---|
| PHASE3_PLATFORM_SUPPORT.md | 高 | Android TV 與 Apple TV 實作 |
使用時機:已有可運作的 Vega 單一儲存庫,新增平台
範本
所有設定範本位於 assets/templates/,並附有對應的 .md 文件:
root-package.json- Yarn Workspaces 設定root-tsconfig.json- TypeScript 專案參考yarnrc.yml- 相依性去重(關鍵)shared-package.json+.md- 共用套件設定與規則vega-metro.config.js- 含單一儲存庫解析的 Vega Metroexpotv-package.json+.md- Expo TV 套件設定expotv-app.json+.md- 含外掛的 Expo TV 設定expotv-metro.config.js- 含電視擴充功能的 Expo Metro
問題 → 技能對應
| 問題 | 從哪裡開始 |
|---|---|
| 需要分析現有 Vega 應用程式 | PHASE1_ANALYSIS.md |
| 已有分析,需要單一儲存庫設定 | PHASE2_IMPLEMENTATION.md → 範本 |
| 單一儲存庫已存在,新增 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) |
工作流程
- 使用上述決策樹決定起始階段
- 載入該階段的對應參考檔案
- 遵循每個參考中的「快速入門 → 深入探討」模式
- 在每個階段的檢查點進行驗證,再進入下一階段
- 使用 VALIDATION_CHECKLIST.md 進行全面驗證
歸屬
基於 Vega OS 多平台遷移模式與 React Native 單一儲存庫最佳實務。






