最近想在项目中实现跨平台,对比一下主流的实现方式,选用了React Native。参考网上的教程,对于一直都是原生移动端开发,对前端的知识不是很了解的,感觉入门不是特别简单。于是打算把学习React Native的过程记录下来。

环境配置

基本参考React Native中文网搭建开发环境教程

搭建开发环境

安装流程就不详细写了,毕竟平台不同,系统原有软件的版本也不同,就算再详细下出来,也很难涉及全,可参考价值不大,况且React Native中文网写得很全面了。

我自己homebrew,Node,Android Studio之前都安装过了,基本不需要改动,就可以直接使用。网络方面,使用梯子,也一切顺利。

基本流程

  1. 安装Homebrew
  2. 用homebrew安装node
  3. 安装Yarn,react-native-cli
  4. 安装Xcode,macos都有
  5. 安装Watchman
  6. 安装Android Studio,Android SDK,Java环境,模拟器
  7. 安装webstorm开发工具

输出版本号判断是否安装成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
➜  ~ brew -v
Homebrew 1.6.0
Homebrew/homebrew-core (git revision 47aeb6; last commit 2018-04-12) ➜ ~ node -v
v8.11.1 ➜ ~ xcodebuild -version
Xcode 9.3
Build version 9E145 ➜ ~ watchman -v
4.9.0 ➜ ~ java -v
Unrecognized option: -v
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit. ➜ ~ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

编译项目测试运行环境

1
2
3
4
5
6
7
 创建名称为AwesomeProject的项目
➜ ~ react-native init AwesomeProject
➜ ~ cd AwesomeProject
运行Android 项目
➜ ~ react-native run-android
运行IOS 项目
➜ ~ react-native run-ios

运行效果

看到Welcome to React Native,表示搭建开发环境,创建,运行React Native应用完成。为啥不是显示hello world呢!!!

错误点

  1. Error: Your Xcode (8.2) is too outdated.

    由于刚刚升级了Mac OS为10.3,Xcode没有更新到,现在提示该错误,直接在App Store升级Xcode就可以了。

  2. warni 大专栏  我们一起学React Native(一):环境配置ng You are using Node “7.7.1” which is not supported and may encounter bugs or unexpected behavior. Yarn supports the following semver range: “^4.8.0 || ^5.7.0 || ^6.2.2 || ^8.0.0”

    Node版本不符合,有warning提示,那就重新Node版本吧

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     查找有效的node版本,打钩表示已经安装上的
    ➜ ~ brew search node
    ==> Searching local taps...
    node ✔ libbitcoin-node node@4 nodeenv
    node@8 ✔ llnode node@6 nodenv
    leafnode node-build nodebrew
    断开当前版本
    ➜ ~ brew unlink node
    # 安装node8版本
    ➜ ~ brew install node@8
    # 连接新安装的node8版本,后续切换也是通过这种方式
    ➜ ~ brew link node@8
    # 显示当前版本是否正确
    ➜ ~ node -version

端口占用出错

  1. unable to load script from assets ‘index.android bundle’ ,make sure your bundle is packaged correctly or youu’re runing a packager server

    后来发现,不需要生成index.android.bundle文件也可以解决该问题,具体看错误6

    • 创建assets文件

      1
      ➜  AwesomeProject mkdir android/app/src/main/assets
    • 生成index.android.bundle文件

      1
      ➜  AwesomeProject react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
    • 重新编译运行

      1
      ➜  AwesomeProject react-native run-android
  2. The development server returned response error code:404

    该问题与上面的,应该是有联系的。上面的问题解决后,点开菜单,设置Enable Hot Reloadding出现了错误,提示如下。React Native怎么问题那么多???回想上一周创建项目的时候,都没有这些问题,也没有去创建index.android.bundle文件,一切正常。

    一直发现不知道什么问题,就先忽略不去管它,然后,修改App.js的代码,发现修改后,重新运行,一点效果都没有???仔细看发现,运行的时候,终端出现了下面的错误。

  3. js server not recognized, continuing with build

    该问题的出现,是因为端口被占用了,默认是用8081的端口。

    1
    2
    3
    4
    5
    6
    # 查看端口占用
    ➜ lsof -i:8081
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    node 58043 guidongyuan 20u IPv6 0x4c86dd8abf88c407 0t0 TCP *:sunproxyadmin (LISTEN)、
    # kill掉占用的进程
    ➜ ~ kill -9 58043

    重新编译运行就可以了

    通过该方式修复了问题错误4和5后,发现把错误3中为了修复错误新增的文件删除掉,也不会出错。看来都是端口的问题。

我们一起学React Native(一):环境配置的更多相关文章

  1. 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  2. Mac电脑配置IOS React Native开发环境配置笔记

    React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...

  3. 深入浅出React Native 1: 环境配置

    该教程主要介绍如何用react native来开发iOS,所以首先,你需要有一台mac,当然黑苹果也是可以的~ 创建一个react native的项目只需要安装以下五个组件~~(但....坑爹的是,不 ...

  4. React Native iOS环境搭建

    前段时间React Native for Android发布,感觉React Native会越来越多的公司开始研究.使用.所以周六也抽空搭建了iOS的开发环境,以便以后利用空闲的时间能够学习一下. 废 ...

  5. React Native 开发环境安装和配置使用报错: -bash: react-native: command not found

    [React  Native 开发环境安装和配置:-bash: react-native: command not found 报错: 前提是安装homebrew,node.js ,npm ,watc ...

  6. Mac配置React Native开发环境

    一直觉得学习一样东西,不动手怎么也学不会,就像学习swift,看了视频没有动手操作,记住的也就那么点,自己写出东西不是这里有问题就是那里出错. 所以,以后学习自己要多动手. 现在我的学习任务就是: 提 ...

  7. React Native开发 - 搭建React Native开发环境

    移动开发以前一般都是原生的语言来开发,Android开发是用Java语言,IOS的开发是Object-C或者Swift.那么对于开发一个App,至少需要两套代码.两个团队.对于公司来说,成本还是有的. ...

  8. 搭建基本的React Native开发环境

    步骤如下: 1.安装HomeBrew,命令如下: 在终端输入命令:$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Home ...

  9. 从零学React Native之13 持久化存储

    数据持久化就是指应用程序将某些数据存储在手机存储空间中. 借助native存储 这种方式不言而喻,就是把内容传递给native层,通过原生API存储,详见从零学React Native之05混合开发 ...

随机推荐

  1. 痢疾杆菌|SARS

    病原微生物分析: Eg:痢疾杆菌 测序---比对(K12vs治病菌1vs治病菌2),发现: “毒力岛”:K12没有,两个治病菌有,缩小搜寻范围. “黑洞”:K12有,但两个治病菌没有. SARS: 构 ...

  2. 面向对象 part2 属性的特性

    6.1.1理解对象 创建自定义对象最简单的方式就是创建一个object实例.然后添加方法和实例 var person = new Object() person.name = "hi&quo ...

  3. python基础,if判断

    一.计算机基础知识: 1.计算机基本组成:主板+CPU+内存 (CPU:主频,核数(16)   内存:大小,型号,主频   显卡:显存,位宽) 2.计算机最低层:电子电路,只能识别0和1. 二.pyt ...

  4. JavaScript学习笔记 - 进阶篇(3)- 流程控制语句

    if语句 if语句是基于条件成立才执行相应代码时使用的语句. 语法: if(条件) { 条件成立时执行代码} 注意:if小写,大写字母(IF)会出错! 假设你应聘web前端技术开发岗位,如果你会HTM ...

  5. 唐顿庄园S01E01观看感悟

    刚刚看了唐顿庄园的第一季第一集.看第一遍的时候,主要是看剧情,看看有没有什么吸引人的.我是一带而过的.等到看第二遍的时候,仔细观察画面,欣赏画面的美感,琢磨人物的台词对话.不断的倒退回放,越看越有滋味 ...

  6. Java复习(一)——Java语言概述、开发环境、基础知识

    设计模式:在各种应用系统中被大量应用,是设计的“常用套路” 作为Java WEB开发人员,需要掌握HTML/CSS/JS和数据库相关知识 常用的应用程序框架:Spring MVC,Spring Boo ...

  7. iOS雪花动画、音频图、新闻界面框架、2048游戏、二维码条形码扫码生成等源码

    iOS精选源码 粒子雪花与烟花的动画 iOS 2048游戏 JHSoundWaveView - 简单地声波图.音波图 一个可快速集成的新闻详情界面框架,类似今日头条,腾讯新闻 二维码/条形码扫描及扫描 ...

  8. 闭包,协议delegate

    1.定义 //1.闭包表达式语法 { (parameters) -> returnType in statements } let names = ["Chris", &qu ...

  9. HDU-1828 Picture(扫描线 求矩形并的周长)

    http://acm.hdu.edu.cn/showproblem.php?pid=1828 Time Limit: 6000/2000 MS (Java/Others)    Memory Limi ...

  10. poj-3259 Wormholes(无向、负权、最短路之负环判断)

    http://poj.org/problem?id=3259 Description While exploring his many farms, Farmer John has discovere ...