跳到主要內容

如何貢獻程式碼

感謝您對貢獻 React Native 的興趣!從評論和分流 Issue,到審查和發送 PR,所有貢獻都非常歡迎。在這份文件中,我們將涵蓋貢獻程式碼到 React Native 的步驟。

如果您渴望立即開始貢獻程式碼,我們有一個 good first issues 清單,其中包含範圍相對有限的錯誤。標記為 help wanted 的 Issue 非常適合提交 PR。

先決條件

資訊

請參考環境設定指南,根據您使用的平台和您想要開發的平台設定所需的工具和開發環境。

開發工作流程

在克隆 React Native 後,打開目錄並運行 yarn 以安裝其依賴項。

現在您已設定好運行幾個命令

  • yarn start 啟動 Metro 打包器伺服器。
  • yarn lint 檢查程式碼風格。
  • yarn format 自動格式化您的程式碼。
  • yarn test 運行基於 Jest 的 JavaScript 測試套件。
    • yarn test --watch 運行互動式 JavaScript 測試監視器。
    • yarn test <pattern> 運行帶有匹配檔案名稱的 JavaScript 測試。
  • yarn flow 運行 Flow 類型檢查。
    • yarn flow-check-android*.android.js 檔案執行完整的 Flow 檢查。
    • yarn flow-check-ios*.ios.js 檔案執行完整的 Flow 檢查。
  • yarn test-typescript 運行 TypeScript 類型檢查。
  • yarn test-ios 運行 iOS 測試套件(需要 macOS)。
  • yarn build 建置所有已配置的套件 — 一般來說,此命令僅需要在發佈前由 CI 運行。

測試您的變更

測試幫助我們防止將回歸錯誤引入程式碼庫。我們建議運行 yarn test 或上述平台特定的腳本,以確保在您處理變更時不會引入任何回歸錯誤。

GitHub 儲存庫使用 CircleCI 進行持續測試,其結果可通過 commits 和 pull requests 上的 Checks 功能獲得。

您可以在如何執行與撰寫測試頁面上了解更多關於運行和撰寫測試的資訊。

程式碼風格

我們使用 Prettier 來格式化我們的 JavaScript 程式碼。這節省了您的時間和精力,因為您可以通過其編輯器整合,或手動運行 yarn run prettier,讓 Prettier 自動修復任何格式問題。我們還使用 linter 來捕捉您程式碼中可能存在的樣式問題。您可以通過運行 yarn run lint 來檢查程式碼樣式的狀態。

但是,仍然有一些樣式是 linter 無法檢測到的,尤其是在 Java 或 Objective-C 程式碼中。

Objective-C

  • @property 宣告後的空格
  • 每個 if 都要有括號,並在同一
  • - method@interface@implementation 括號在下一行
  • 盡量保持在 80 個字元的行長度左右(有時不可能...)
  • * 運算符與變數名稱一起使用(例如 NSObject *variableName;

Java

  • 如果方法調用跨越多行,則右括號與最後一個參數在同一行。
  • 如果方法標頭不適合在一行中,則每個參數都放在單獨的行上。
  • 100 個字元的行長度

發送 Pull Request

對 React Native 的程式碼級貢獻通常以 pull request 的形式出現。向 React Native 提議變更的過程可以總結如下

  1. Fork React Native 儲存庫並從 main 建立您的分支。
  2. 如果您添加了應該測試的程式碼,請添加測試。
  3. 如果您更改了 API,請更新文件。
  4. 確保測試套件通過,無論是在本地還是在您開啟 pull request 後在 CI 上。
  5. 確保您的程式碼通過 lint 檢查(例如通過 yarn lint --fix)。
  6. 將變更推送到您的 fork。
  7. 建立一個 pull request 到 React Native 儲存庫。
  8. 審查並處理您 pull request 上的評論。
  9. 機器人可能會評論並提出建議。通常,我們會要求您先解決這些問題,然後維護者才會審查您的程式碼。
  10. 如果您還沒有提交 貢獻者授權協議("CLA"),請提交。

如果一切順利,您的 pull request 將被合併。如果未合併,維護者將盡力解釋其原因。

如果這是您第一次發送 pull request,我們建立了一個逐步指南來幫助您入門。有關如何處理 pull requests 的更多詳細資訊,請參閱管理 Pull Requests 頁面

貢獻者授權協議

為了接受您的 pull request,我們需要您提交貢獻者授權協議 (CLA)。您只需執行一次即可處理 Meta 的任何開源專案。這只需要一分鐘,所以您可以在等待依賴項安裝時完成。

許可證

通過貢獻 React Native,您同意您的貢獻將根據 React Native 儲存庫根目錄中的 LICENSE 檔案獲得許可。