安装流程参考 React Native 官方文档 Setting up the development environment。
- Node
- iOS
- Android
React Native 官方文档推荐在 Windowws 平台使用包管理工具 Chocolatey 安装 Node 和 JDK,这里直接在官网下载安装文件安装。
Node
打开 https://nodejs.org/en/ 下载安装 LTS 版 Node,比如 14.17.2 LTS。
PS > node --version
v14.17.2JDK
打开 https://adoptopenjdk.net/ 下载安装 LTS 版 OpenJDK。
- JDK Version:
- OpenJDK 8 (LTS)
- OpenJDK 11 (LTS)
- OpenJDK 16 (Latest)
- JVM:
- OpenJDK HotSpot
- Eclipse OpenJ9
可以选择 OpenJDK 11 (LTS) + HotSpot,默认会从 GitHub 上下载安装包。如果下载速度过慢,可以使用清华大学的 AdoptOpenJDK 镜像。
PS > java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)Gradle
打开 https://gradle.org/releases/ 下载最新版 Gradle,比如 v7.1.1。下载完成后解压到 D:\Apps\Gradle\gradle-7.1.1 目录,并将其添加为系统变量 GRADLE_HOME,将 %GRADLE_HOME%\bin 添加到系统 PATH 环境变量中。
PS > gradle -v
------------------------------------------------------------
Gradle 7.1.1
------------------------------------------------------------
Build time: 2021-07-02 12:16:43 UTC
Revision: 774525a055494e0ece39f522ac7ad17498ce032c
Kotlin: 1.4.31
Groovy: 3.0.7
Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM: 11.0.11 (AdoptOpenJDK 11.0.11+9)
OS: Windows 10 10.0 amd64为了加速后期 Gradle 下载依赖,可以参考之前的文章 日常开发中用到的一些代理配置方式 设置镜像源。
Android Studio
打开 https://developer.android.google.cn/studio?hl=zh-cn 下载最新版 Android Studio,安装到 D:\Android\Android Studio 目录。
C盘空间有限,这里将 SDK 路径指向到其他磁盘。
新增环境变量:
ANDROID_SDK_ROOT默认指向%LOCALAPPDATA%\Android\Sdk,这里设置为D:\Android\SdkANDROID_HOME已废弃,理论上使用ANDROID_SDK_ROOT代替,这里设置为%ANDROID_SDK_ROOT%,保持向前兼容ANDROID_PREFS_ROOT默认指向%USERPROFILE%,这里设置为D:\Android(原ANDROID_SDK_HOME已废弃)
将 Android SDK 命令行工具添加到系统 PATH 环境变量中。
%ANDROID_HOME%\platform-tools包含adb等命令%ANDROID_HOME%\emulator包含新版emulator等命令%ANDROID_HOME%\tools包含旧版emulator等命令、脚本
添加环境变量时,注意保证
%ANDROID_HOME%\emulator在%ANDROID_HOME%\tools之前。
PS > adb --version
Android Debug Bridge version 1.0.41
Version 31.0.2-7242960
Installed as D:\Android\Sdk\platform-tools\adb.exe
PS > emulator -version
Android emulator version 30.7.5.0 (build_id 7491168) (CL:N/A)如果需要为 Android Studio 设置代理,可以参考官方文档 配置 Android Studio。
第一个 React Native 项目
使用 React Native CLI
$ npm i -g react-native
$ react-native init AwesomeProject --template react-native-template-typescript
$ cd AwesomeProject
$ npm run android如果希望指定 react-native 版本,初始化时增加 --version 参数,比如:
$ react-native init AwesomeProject --version 0.64.2如果报 template.config.js file inside "react-native" template. Please make sure the template is valid 错误,需要换成旧版 CLI。参考 For older react-native versions。
$ npm uninstall -g react-native
$ npm i -g react-native-cli
$ react-native init AwesomeProject --version 0.55.4开发时,Android App 运行的 jsbundle 文件地址为 http://localhost:8081/index.bundle?platform=android&dev=true&minify=false。
构建 jsbundle 文件:
$ mkdir build
$ npx react-native bundle --entry-file index.js --platform android --dev false --bundle-output build/index.android.jsbundle --assets-dest build --sourcemap-output build/index.android.map更多命令参考 Commands。
使用 Expo CLI
$ npm i -g expo-cli
$ expo init my-app -t expo-template-blank-typescript
$ cd my-app
$ npm startExpo CLI 初始化时默认会使用 Yarn,如果希望使用 npm 则执行 expo init my-app --npm -t expo-template-blank-typescript。
Expo CLI 安装的 react-native 依赖不是来自于 npm 仓库,而是 Expo 托管在 GitHub 上的版本,比如 https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz,如果无法正常访问 GitHub,可以先初始化不下载依赖 expo init my-app --no-install -t expo-template-blank-typescript。
React Native 相关技术
- React Native: A framework for building native apps with React
- Metro: The JavaScript bundler for React Native
- Yoga: A cross-platform layout engine which implements Flexbox
- Expo: An open-source platform for making universal native apps with React
- Watchman: A file watching service
- Hermes: A small and lightweight JavaScript engine optimized for running React Native on Android
- Flipper: A desktop debugging platform for mobile developers
相关链接
- React Native
- Homepage
- Source code
- React Native CLI
- Yoga
- Metro
- Watchman
- Hermes JS Engine
- Flipper
- JDK
- Gradle
- Android Studio
- Expo