我们一起学React Native(一):环境配置
最近想在项目中实现跨平台,对比一下主流的实现方式,选用了React Native。参考网上的教程,对于一直都是原生移动端开发,对前端的知识不是很了解的,感觉入门不是特别简单。于是打算把学习React Native的过程记录下来。
环境配置
基本参考React Native中文网搭建开发环境教程
安装流程就不详细写了,毕竟平台不同,系统原有软件的版本也不同,就算再详细下出来,也很难涉及全,可参考价值不大,况且React Native中文网写得很全面了。
我自己homebrew,Node,Android Studio之前都安装过了,基本不需要改动,就可以直接使用。网络方面,使用梯子,也一切顺利。
基本流程
- 安装Homebrew
- 用homebrew安装node
- 安装Yarn,react-native-cli
- 安装Xcode,macos都有
- 安装Watchman
- 安装Android Studio,Android SDK,Java环境,模拟器
- 安装webstorm开发工具
输出版本号判断是否安装成功
1 |
➜ ~ brew -v |
编译项目测试运行环境
1 |
创建名称为AwesomeProject的项目 |
运行效果
看到Welcome to React Native,表示搭建开发环境,创建,运行React Native应用完成。为啥不是显示hello world呢!!!

错误点
Error: Your Xcode (8.2) is too outdated.
由于刚刚升级了Mac OS为10.3,Xcode没有更新到,现在提示该错误,直接在App Store升级Xcode就可以了。
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
端口占用出错
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
The development server returned response error code:404
该问题与上面的,应该是有联系的。上面的问题解决后,点开菜单,设置
Enable Hot Reloadding出现了错误,提示如下。React Native怎么问题那么多???回想上一周创建项目的时候,都没有这些问题,也没有去创建index.android.bundle文件,一切正常。一直发现不知道什么问题,就先忽略不去管它,然后,修改
App.js的代码,发现修改后,重新运行,一点效果都没有???仔细看发现,运行的时候,终端出现了下面的错误。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(一):环境配置的更多相关文章
- 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
- Mac电脑配置IOS React Native开发环境配置笔记
React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...
- 深入浅出React Native 1: 环境配置
该教程主要介绍如何用react native来开发iOS,所以首先,你需要有一台mac,当然黑苹果也是可以的~ 创建一个react native的项目只需要安装以下五个组件~~(但....坑爹的是,不 ...
- React Native iOS环境搭建
前段时间React Native for Android发布,感觉React Native会越来越多的公司开始研究.使用.所以周六也抽空搭建了iOS的开发环境,以便以后利用空闲的时间能够学习一下. 废 ...
- React Native 开发环境安装和配置使用报错: -bash: react-native: command not found
[React Native 开发环境安装和配置:-bash: react-native: command not found 报错: 前提是安装homebrew,node.js ,npm ,watc ...
- Mac配置React Native开发环境
一直觉得学习一样东西,不动手怎么也学不会,就像学习swift,看了视频没有动手操作,记住的也就那么点,自己写出东西不是这里有问题就是那里出错. 所以,以后学习自己要多动手. 现在我的学习任务就是: 提 ...
- React Native开发 - 搭建React Native开发环境
移动开发以前一般都是原生的语言来开发,Android开发是用Java语言,IOS的开发是Object-C或者Swift.那么对于开发一个App,至少需要两套代码.两个团队.对于公司来说,成本还是有的. ...
- 搭建基本的React Native开发环境
步骤如下: 1.安装HomeBrew,命令如下: 在终端输入命令:$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Home ...
- 从零学React Native之13 持久化存储
数据持久化就是指应用程序将某些数据存储在手机存储空间中. 借助native存储 这种方式不言而喻,就是把内容传递给native层,通过原生API存储,详见从零学React Native之05混合开发 ...
随机推荐
- 谷歌为何要研发新系统在5年内取代Android?
现在的Android系统已经越做越好,体验也愈来愈佳,是唯一能和iOS掰腕子的移动操作系统.而且对于很多智能手机厂商来说,开源的Android为它们节约了太多成本,是不可或缺的基石之一.因此,想必很多 ...
- python-day7爬虫基础之Ajax数据爬取
前几天一直在忙老师的项目,就没有继续学python,也没有写什么收获,今天晚上有空看看书,边看边理解着写吧: 首先说一下,我对Ajax的理解,就是有时候我们在浏览某个网页的时候,只要我们鼠标一直往下滑 ...
- 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建)
黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) 黑马eesy_15 Vue:04.综合案例(前端 ...
- 新服务器搭建-总结: 下载nginx,jdk8,docker-compose编排(安装mysql,redis) 附安装
三明SEO: 前言 如题, 公司新买了一条4核16G的服务器, 不得不重新搭建环境, 只能一一重来, 做个记录 1.nginx : 手动安装 2.jdk8: 手动安装 3. 安装docker 及doc ...
- 使script.bin文件配置生效的驱动
1.问题:在全志方案中如果需要设置上拉或者下拉模式,需要在script.bin(先转换为script.fex)中配置gpio口 如: 但是配置好后是不会生效的,需要写一个驱动来通过读取这个文件的gp ...
- set_include_path详细解释(转)
首先我们来看这个全局变量:__FILE__它表示文件的完整路径(当然包括文件名在内)也就是说它根据你文件所在的目录不同,有着不同的值:当然,当它用在包行文件中的时候,它的值是包含的路径: 然后:我们看 ...
- mysql自定义函数统计订单状态:GET_ORDER_STATUS()
DELIMITER $$ USE `local_hnyz`$$ DROP FUNCTION IF EXISTS `GET_ORDER_STATUS`$$ CREATE DEFINER=`root`@` ...
- RDD(七)——依赖
概述 RDD只支持粗粒度转换,即在大量记录上执行的单个操作.将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区.RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD ...
- kubectl格式化输出和调试
1.格式化输出 以特定的格式想终端输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 选项 输出格式 描述 -o=custom-columns=<spec> 使 ...
- LGOJ4449 于神之怒加强版
Description link 给定\(n\),\(m\),\(k\),计算 \[\sum_ {i=1}^n \sum^m_{j=1} gcd(i,j)^k \space mod \space 10 ...