Community程式設計與開發github.com

bharath2020/expo-navigation-migration

分析現有 Expo 或 React Native 儲存庫的導航方式,並規劃逐步遷移至 Expo SDK 58 導航、Expo Router(React Navigation 和 react-native-screens)及/或 @expo/ui(SwiftUI、Jetpack Compose),可選擇是否加入功能旗標,最終以乾淨退場結束。同時提供導航模式目錄,包含驗證狀態與已知缺口。

expo-navigation-migration 是什麼?

此技能專為開發者與 AI 代理設計,用於評估與遷移 Expo 或 React Native 專案的導航實作至 Expo SDK 58。它執行三項主要任務:分析現有導航程式碼、規劃逐步遷移方案,以及查閱導航模式目錄。分析階段會執行腳本掃描儲存庫,找出導航相關信號,並產生詳細報告。規劃階段則根據分析結果,提供目標決策(Expo Router、@expo/ui 或兩者混合)、功能旗標縫合位置、無旗標遷移路徑、API 對應與現有 React Navigation 情境的遷移藍圖。目錄部分涵蓋堆疊導航、分頁、側邊欄、模態、工作表、導航欄按鈕、大標題等常見模式,並標註各平台的驗證狀態與已知限制。此技能僅產出規劃與建議,不會直接修改應用程式碼,非常適合用於大型專案的導航現代化或平台原生化策略制定。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bharath2020/expo-navigation-migration-skill/tree/HEAD/expo-navigation-migration

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Expo 導航遷移 (SDK 58)

三項工作。依請求選擇;一份遷移計畫需要依序完成所有三項。

請求執行
「這個儲存庫的導航是如何實作的?」分析
「規劃遷移」、「我們可以為此加上旗標嗎?」、「React Navigation 還是 @expo/ui?」分析,然後規劃
「我們使用 React Navigation,並希望採用更多原生元素以及一個穩定的導航與深度連結函式庫」分析,然後規劃,並使用現有 React Navigation 情境
「我如何建立側邊欄 / 工作表 / Duo 佈局?」、「X 功能是否可行?」查閱目錄

本文件全程使用以下目標名稱:

  • React Navigation 指的是建立在 react-native-screens 之上的 Expo Router。從 SDK 56 開始,expo-router 不再依賴 @react-navigation/*,而是分叉了其基礎部分。SDK 58 移除了大部分分叉 API。
  • Plain React Navigation 指的是不帶 Expo Router 的 @react-navigation/* 7.x。
  • @expo/ui 指的是 iOS 上的 SwiftUI 與 Android 上的 Jetpack Compose。

僅讀取目標儲存庫。此技能負責規劃;除非使用者另外要求,否則不會變更任何應用程式碼。

Expo 每個 SDK 都會變更。此處的 API 事實已於 2026-11-02 針對 SDK 58 驗證。對於目錄未顯示為已驗證、且你將要依賴的任何 API,請擷取 https://docs.expo.dev/versions/v58.0.0/。

分析

  1. 執行 node <skill>/scripts/inventory-navigation.mjs <repo-root>。此腳本僅讀取,並以 path:line 位置輸出信號。當信號顯示 truncated 大於零時,請加上 --max-locations 200 重新執行。
  2. 依照 references/analysis.md。填寫 templates/analysis-report.md。

當報告中的每一行都有附帶證據的值,或說明了搜尋過但未找到的項目,且每個庫存信號都已透過閱讀其程式碼確認或排除時,即完成分析。

規劃

依照 references/migration-planning.md。它會引用:

填寫 templates/migration-plan.md。此計畫始終涵蓋有旗標的切換、無旗標的切換、每一步都可獨立發佈與驗證的排序步驟,以及一個可移除任何旗標與計畫所取代內容的乾淨退場。它會根據此儲存庫列出一個建議及其理由。該建議可以是保留目前的導航擁有者;當僅有 SDK 移轉時,計畫會說明沒有需要加上旗標的項目及其原因。

查閱模式

references/pattern-catalog.md 列出了每個情境及其對應檔案。每個檔案都提供了針對 iOS 和 Android 上兩個目標的工作原型程式碼、各平台的狀態、注意事項與遷移備註。請原文照引狀態詞彙:verified 表示已在模擬器或模擬機上實際操作過,且未使用任何實體硬體。

templates/ 包含可重複使用的檔案:用於側邊欄區段、側邊欄位置與導航列可見性的本地模組、導航輔助層,以及轉軸與窗格分割元件。本地模組需要開發建置版本。

相關技能