React Navigation 貢獻者指南
想幫忙改善 React Navigation 嗎?非常感謝您的幫忙!
以下是為此專案提供協助的方法
另外,這裡有一些有用的資源,可協助您入門
貢獻
回報錯誤
撰寫程式碼時有時難免會寫出錯誤。特別是當 React Navigation 快速發展時,總是難免會有錯誤。當您認為自己發現一個錯誤時,可以這樣做
- 針對您遇到的錯誤,搜尋已經存在的類似問題。如果您有看到類似的問題,請加上一個 👍 回應(請不要再另外留言 +1)。讀一讀相關留言,看看您是否能提供更有價值的資訊
- 如果沒有其他問題與您遇到的情況相似,那就建立一個新的問題。請務必遵循問題範本。
建立一個高品質的重現範例非常重要。如果不這麼做,我們可能無法修復錯誤,而理想的狀況下,您會發現錯誤並非函式庫的錯誤,而只是在您的專案中執行有誤。這個問題馬上就解決了!
改善文件
任何成功計畫都需要品質良好的文件,而 React 導航也不例外。
深入了解 react-navigation/react-navigation.github.io 儲存庫 文件。
回應問題
另一個對 React 導航有巨大幫助的方法是回應問題。也許是回答某人的問題、指出其程式碼中的小錯字,或協助其組合重建。如果您有興趣在 React 導航中扮演更積極的角色,可以從回應問題做起,這不僅有助益,還展示您對程式的投入與知識!
錯誤修正
找出錯誤,修正它,好運將接踵而來!就如前面提到的,錯誤是難免的。若您找到一個錯誤,請務必執行下列步驟
- 檢查是否有修正該錯誤的請求已存在。如果有的話,請審閱並留下一則留言
- 若還沒有請求,那就找出解法!如果變更很小,先修正它,並送出請求。如果變更數量不少,先送出問題讓我們討論(參閱大型請求部分)
- 若有問題與該錯誤相關,請在問題上留下一則留言,並附上您所送出的請求連結,讓其他人知道該錯誤已有人處理了。
查看 協助徵求 和 適合新手 標籤,瞭解您能從何處開始提供協助!
建議功能
您希望在 React 導航中看到哪些功能嗎?請 在 Canny 上建立功能要求。
大型請求
對於會新增/移除/修改專案中多個檔案的任何變更(新功能或錯誤修正),請勿立刻撰寫程式碼。這樣做有幾個原因
- 審閱大型請求非常耗時,有時候也很難找出文脈
- 通常並不需要做出您所預期的那麼大的變更
請牢記以下建議
- 開啟議題並清楚陳述要達成的目標和實現目標的方法
- 和社群及維護者討論該解決方案。提供背景知識、建立邊界案例,並確定設計
- 決定行動計畫
- 撰寫程式碼並提交 PR
- 檢閱 PR。這可能需要花費一些時間,但如果您遵循上述步驟,希望不會花太多時間。
我們這麼做的原因是為所有人都省下時間。可能該功能已存在,但沒有文件記載嗎?或者可能不適合這個資料庫。無論如何,事先討論重大變更都能為您和其他人省下時間。
資訊
問題範本
在提交問題之前,請參閱問題範本並加以採用。這份範本的目的是幫助所有人更了解您遇到的問題,並減少來回對話以取得所需的資訊。
是的,填寫問題範本需要花費時間和精力。但這是提出高品質問題以實際獲得回應的唯一方法。
您希望花 1 分鐘建立一份不完整的問題報告,然後再等數個月才能獲得任何回應嗎?或者願意花 20 分鐘填寫一份高品質的問題報告,包含所有必要的元素,並在幾天內獲得回應?對於願意花時間檢閱您問題的任何人來說,這也是一個有禮貌的行為。
Pull Request 範本
和問題範本很像,Pull Request 範本提供了說明,以確保您的 Pull Request 能及時獲得檢閱,並減少來回對話。在開始撰寫任何程式碼之前,請務必先仔細閱讀。
複製存放庫
- 在 GitHub 上複製
repo
- 在終端機中執行以下指令,以進行本機下載並安裝
git clone https://github.com/<USERNAME>/navigation-ex.git
cd navigation-ex
git remote add upstream https://github.com/react-navigation/react-navigation.git
yarn
這個專案針對由yarn 工作區和lerna管理的套件,使用單一存放庫結構。所有套件都位於packages/目錄下。
程式碼審查指南
四處看一看。符合其他程式碼庫的風格。此專案使用 ESLint 來確保整個專案的一致性。你可以透過執行下列命令檢查專案:
yarn lint
如果發生任何錯誤,你必須手動修復它們,或者你可以嘗試透過執行以下命令自動修復它們:
yarn lint --fix
程式碼庫以 TypeScript 編寫,而且必須通過型別檢查。若要對檔案執行型別檢查,請執行:
yarn typescript
在處理專案時,建議以監控模式執行型別檢查。若要執行此動作,請執行:
yarn typescript --watch
執行範例應用程式
範例應用程式 包含各種模式,並用作貢獻者手動整合測試變更的簡單方式。
在開發期間,你可以使用 Expo 搭配 範例應用程式 來測試變更。
yarn example start
執行測試
React Navigation 的測試是以 Jest 實作。若要從 React Navigation 目錄執行其中任何一個測試,請在安裝 node_modules
之後執行下列指令,以執行測試或型別檢查。
yarn test
在處理專案時,建議以監控模式執行測試。若要執行此動作,請執行:
yarn test --watch
這些指令會由我們的 CI 執行,而且在合併任何貢獻之前,都必須通過。