【React Native】文件翻譯閱讀紀錄 - 貢獻 - 從源代碼構建 React Native
Facebook Open Source React Native |
從源代碼構建 React Native
如果您想要處理新的功能/錯誤修復,嘗試使用尚未發布的最新功能,或者使用無法合併到核心的補丁維護您自己的分支,則需要從源代碼構建React Native。
Android
先決條件
假設您安裝了Android SDK,請運行android以打開Android SDK Manager。
確保安裝了以下內容:
- Android SDK版本26(build.gradle中的compileSdkVersion)
- SDK構建工具版本26.0.3(build.gradle中的buildToolsVersion)
- Android支持存儲庫> = 26(適用於Android支持庫)
- Android NDK (下載鏈接和安裝說明)
將Gradle指向您的Android SDK:
Step 1: 通過本地shell設置環境變量。
注意:文件可能因shell風味而異。請參閱下面的常見殼的示例。
- bash:
.bash_profile
or.bashrc
- zsh:
.zprofile
or.zshrc
- ksh:
.profile
or$ENV
例:
export ANDROID_SDK=/Users/your_unix_name/android-sdk-macosx
export ANDROID_NDK=/Users/your_unix_name/android-ndk/android-ndk-r10e
Step 2: 使用以下內容在您的react-native應用程序的android目錄中創建local.properties文件:
例:
sdk.dir=/Users/your_unix_name/android-sdk-macosx
ndk.dir=/Users/your_unix_name/android-ndk/android-ndk-r10e
下載Android NDK的鏈接
- Mac OS (64-bit) - http://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip
- Linux (64-bit) - http://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip
- Windows (64-bit) - http://dl.google.com/android/repository/android-ndk-r10e-windows-x86_64.zip
- Windows (32-bit) - http://dl.google.com/android/repository/android-ndk-r10e-windows-x86.zip
您可以在官方頁面上找到進一步的說明。 official page.
建立源頭
1. 安裝 fork
首先,您需要從fork安裝react-native。例如,要從官方倉庫安裝主分支,請運行以下命令:
npm install --save github:facebook/react-native#master
或者,您可以將repo克隆到node_modules目錄並在克隆的repo中運行npm install。
2. 添加 gradle 依賴項
在 android / build.gradle 中添加 gradle-download-task 作為依賴項:
...
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
classpath 'de.undercouch:gradle-download-task:3.1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
...
3. 添加:ReactAndroid項目
在android / settings.gradle中添加:ReactAndroid項目:
...
include ':ReactAndroid'
project(':ReactAndroid').projectDir = new File(
rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
...
修改你的android / app / build.gradle以使用:ReactAndroid項目而不是預編譯的庫,例如: - 用編譯項目替換編譯'com.facebook.react:react-native:+'(':ReactAndroid'):
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:26.0.2'
compile project(':ReactAndroid')
...
}
...
4. 使第三方模塊使用你的fork
如果使用第三方React Native模塊,則需要覆蓋它們的依賴關係,以便它們不捆綁預編譯的庫。否則在編譯時會出錯 - 錯誤:包含名稱為“com.facebook.react”的多個庫。
修改你的android / app / build.gradle,並添加:
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
}
從Android Studio構建
在Android Studio的歡迎屏幕上選擇“導入項目”並選擇應用程序的android文件夾。
您應該可以使用“運行”按鈕在設備上運行應用程序。 Android Studio不會自動啟動打包程序,您需要通過在命令行上運行npm start來啟動它。
您應該可以使用“運行”按鈕在設備上運行應用程序。 Android Studio不會自動啟動打包程序,您需要通過在命令行上運行npm start來啟動它。
補充筆記
從源代碼構建可能需要很長時間,特別是對於第一次構建,因為它需要下載~200 MB的工件並編譯本機代碼。每次從repo更新react-native版本時,build目錄都可能會被刪除,並且所有文件都會被重新下載。為避免這種情況,您可能希望通過編輯〜/ .gradle / init.gradle文件來更改構建目錄路徑:
gradle.projectsLoaded {
rootProject.allprojects {
buildDir = "/path/to/build/directory/${rootProject.name}/${project.name}"
}
}
構建Maven / Nexus部署
如果您發現需要將本地編譯的React Native .aar及相關文件推送到遠程Nexus存儲庫,則可以。
首先按照此頁面的Point Gradle到您的Android SDK部分。 執行此操作後,假設您已正確配置Gradle,則可以從React Native checkout的根目錄運行以下命令,以構建和打包所有必需的文件:
首先按照此頁面的Point Gradle到您的Android SDK部分。 執行此操作後,假設您已正確配置Gradle,則可以從React Native checkout的根目錄運行以下命令,以構建和打包所有必需的文件:
./gradlew ReactAndroid:installArchives
這會將通常包含在您的node_modules / react-native / installation的android目錄中的所有內容打包到React Native checkout的根目錄中。
故障排除
在 ndk-build 中,Gradle 構建失敗。 請參閱上面有關 local.properties 文件的部分。
0 意見