跳至主要内容

如何从源代码构建

如果您想开发新功能/修复 bug、尝试尚未发布的最新功能或维护自己的包含无法合并到核心代码的补丁的分支,则需要从源代码构建 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 文件

  // ...
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 文件来更改构建目录路径

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

基本原理

使用 React Native 的推荐方法是始终更新到最新版本。我们对旧版本提供的支持在我们的支持策略中进行了说明

从源代码构建的方法应该用于在提交 Pull Request 到 React Native 之前进行端到端测试修复,我们不鼓励长期使用这种方法。特别是,分叉 React Native 或将您的设置切换为始终使用从源代码构建,会导致项目更难更新,并且通常会带来更糟糕的开发者体验。