跳到主要內容

如何從原始碼建置

如果您想要開發新功能/錯誤修復、試用尚未發布的最新功能,或維護您自己的分支並包含無法合併到核心的修補程式,則需要從原始碼建置 React Native。

Android

先決條件

若要從原始碼建置,您需要安裝 Android SDK。如果您已遵循設定開發環境指南,您應該已經設定完成。

無需安裝其他工具,例如特定版本的 NDK 或 CMake,因為 Android SDK 將會自動下載從原始碼建置所需的一切。

將您的專案指向 nightly 版本

若要使用 React Native 的最新修復程式和功能,您可以更新您的專案以使用 React Native 的 nightly 版本,方法是使用

yarn add react-native@nightly

這會將您的專案更新為使用 React Native 的 nightly 版本,該版本每天晚上都會發布最新的變更。

更新您的專案以從原始碼建置

無論是穩定版本還是 nightly 版本,您都將使用預編譯的成品。如果您想要切換為從原始碼建置,以便您可以直接測試您對框架的變更,則必須如下編輯 android/settings.gradle 檔案

diff
  // ...
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')

+ includeBuild('../node_modules/react-native') {
+ dependencySubstitution {
+ substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ }
+ }

其他注意事項

從原始碼建置可能需要很長時間,尤其是第一次建置,因為它需要下載約 200 MB 的成品並編譯原生程式碼。

每次您從儲存庫更新 react-native 版本時,建置目錄可能會被刪除,並且所有檔案都會重新下載。為了避免這種情況,您可能想要透過編輯 ~/.gradle/init.gradle 檔案來變更您的建置目錄路徑

groovy
gradle.projectsLoaded {
rootProject.allprojects {
buildDir = "/path/to/build/directory/${rootProject.name}/${project.name}"
}
}

理由

使用 React Native 的建議方法始終是更新到最新版本。我們為舊版本提供的支援在我們的支援政策中有所描述

從原始碼建置方法應用於在提交 Pull Request 給 React Native 之前進行端對端測試修復,我們不鼓勵長期使用它。尤其是 fork React Native 或切換您的設定為始終使用從原始碼建置,將導致專案更難更新,並且通常會導致更差的開發人員體驗。