如何从源代码构建
如果您想开发新功能/修复错误,尝试尚未发布的最新功能,或者维护您自己的包含无法合并到核心的补丁的分支,您将需要从源代码构建 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 的推荐方法始终是更新到最新版本。我们为旧版本提供的支持在我们的支持策略中进行了描述。
从源代码构建方法应用于在向 React Native 提交 pull request 之前对修复进行端到端测试,我们不鼓励长期使用它。特别是 fork React Native 或将您的设置切换为始终使用从源代码构建,将导致项目更难更新,并且通常会带来更糟糕的开发者体验。