如何从源码构建
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
当您需要开发新功能/修复错误、尝试尚未发布的最新特性,或维护包含无法合并到核心代码的补丁的分支时,就需要从源码构建 React Native。
Android
前提条件
要从源码构建,您需要安装 Android SDK。如果已按照设置开发环境指南操作,您的环境应该已经准备就绪。
无需额外安装 NDK 或 CMake 等特定版本工具,Android SDK 会自动下载源码构建所需的所有依赖。
将项目指向 nightly 版本
要使用 React Native 的最新修复和功能,可以通过以下命令将项目更新至 nightly 版本:
yarn add react-native@nightly
此操作会将项目更新为使用 nightly 版本的 React Native,该版本每日夜间发布并包含最新变更。
更新项目以从源码构建
无论是稳定版还是 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}"
}
}
原因说明
我们推荐的最佳实践是始终更新至最新版本。对旧版本的支持策略详见我们的支持政策。
从源码构建的方式应仅用于提交 PR 前的端到端测试,我们不鼓励长期使用此方式。特别是分叉 React Native 或永久切换至源码构建,会导致项目更新困难并造成整体开发体验下降。