windows下搭建react-native

相信react-native如今的火辣程度已经各位前端攻城师忍不住想撸一把了,特别是听了Techparty 19日在广州分享的react-native专场沙龙之后,已经有同学开始不淡定地想往坑里跳了,来吧!我已经在坑里了,我们一起深埋。

学习react-native也差不多两周了,是时候拿出点东西来给大家分享分享了,我们就先最简单(折腾)的搭环境开始吧! 当然,我说的是windows系统环境,别问为什么不是ios,我不会告诉你是因为,穷! 中文官网 中的安卓环境配置也说明了对windows环境的支持,但是具体安装步骤就只是寥寥几笔,对于我们这种没接触过Android或者IOS开发的前端小白来说,真是要命。还是得规规矩矩按照步骤来,不然真得一步一个坑地走。

下面我就作为一个手机native开发小白来聊聊如何在Windows环境下搭建react-native:

第1步:安装最新版Java

我们在Windows下面搭建react-native环境就是为了开发Android程序,必须有Java环境。

第2步:安装Android SDK
  • Tools/Android SDK Tools
  • Tools/Android SDK Platform-tools
  • Tools/Android SDK Build-tools
  • Android 6.0 (API 23)/SDK Platform
  • Extras/Android Support Library
  • Extras/Local Maven repository for Support Libraries

直接看图安装:

第3步:安装C++

编译node.js的C++模块时需要用到,我也就一说,其实大部分同学肯定是已经安装了的,因为大家早就已经用上node.js。需要安装的童鞋可以在https://www.visualstudio.com/ 下载Visual Studio 2013或2015,也可选择Windows SDK、cygwin或mingw等其他C++环境。

第4步:安装node.js

这个不用说了,前端童鞋怎能没有node环境!?

第5步:安装react-native命令行工具

折腾了辣么多的依赖环境,终于来到激动人心的部分,我们要开始折腾reac-native啦!首先就是要通过npm安装react-native命令行工具:

$ npm install -g react-native-cli 

也可以在 react-native github 通过git clone或者Download ZIP下载解压,然后执行以下代码:

$ cd react-native-cli 
$ npm install -g 

react-native-cli是一个终端命令,它可以完成其余的设置工作,刚才这条命令会往你的终端安装一个叫做react-native的命令。

第6步:创建react-native项目

有了react-native命令行工具,我们就可以用它在创建初始化一个react-native项目:

$ react-native init AwesomeProject 

这个命令会初始化一个工程、下载React Native的所有源代码和依赖包,最后在AwesomePrjoect/iOS/AwesomeProject.xcodeproj和AwesomeProject/android/app下分别创建一个新的XCode工程和一个gradle工程。

如果你网络不怎么样,这里会耗时相当相当久,甚至经常因为网络的原因下载项目失败!所以 react-native中文官网 推荐你使用淘宝镜像:

$ npm config set registry https://registry.npm.taobao.org 

当然如果你也可以使用vpn加速,不过我推荐你使用中文官网推荐的 完整的绿色纯净新项目包 。

第7步:运行packager

为了避免一会儿run-android报警告,我们现在先通过下面命令开启运行packager:

$ cd AwesomeProject 
$ npm start

如果你碰到了ERROR Watcher took too long to load的报错,请尝试将这个文件nodemodules/react-native/packager/react-packager/src/FileWatcher/index.js中的MAXWAIT_TIME值改得更大一些。

运行packager的目的是让node开启一个服务来实时将我们项目的.js文件编译成功.jsbunde文件,我们可以通过 http://localhost:8081/index.android.bundle?platform=android 来访问到这个文件。 这就是react-native开发native程序的亮点之一,react-native通过实时编译并获取这个文件来做到native app实时热更新。

第8步:链接设备或者模拟器

如果正确配置了Android SDK环境变量,我们在docs命令控制行中运行 adb devices 应该可以看到下面界面:我们看到列表为空,是因为我们还未连接任何设备。我通过USB接入手机,再运行看看:

我们可以看到设备号为 JNIJP7NFZ5JZYDWK 已经连接成功,这就是我那吊炸天的红米手机! 我们还可以运行Android模拟器, react-native中文官网 推荐 Genymotion。不过Genymotion依赖VirtualBox(虚拟机),如果你懒得折腾,还可以下载其他模拟器,比如 BlueStacks 等等。

第8步:编译运行Android

我们进入AwesomeProject目录, $ cd AwesomeProject ,然后在AwesomeProject目录下运行 $ react-native run-android ,就会构建工程并自动安装到你的模拟器或者设备,同时启动用于实现动态代码加载的Node服务。说的轻巧,第一次运行的时候,会下载 gradle 文件,然而在我们的办公网络环境运行就会报下面的错:

我的解决办法是:

graddle构建过程中会下载很多jar包,如果出现下载失败,多重试几次。这里简单解释一下gradle(其实我也不太懂,囧...),我的理解是,graddle其实就是一种自动化构建工具,它通过依赖管理自动化编译测试部署等过程产生具体的apk,类似我们前端常用的grunt,gulp等工具。

ok,如果你运行顺利,就能在模拟器或者设备上看到一个名为AwesomeProject的Android App,前提是要确保如第7步所说的,你的设备已经正确连接。说实话,我运行的时候,事情远没这么顺利,再看一个奇怪的报错:

解决办法 : 将android/build.gradle文件中的 classpath 'com.android.tools.build:gradle:1.3.1' 改为 classpath 'com.android.tools.build:gradle:1.2.3' 。猜测是插件包不兼容导致。

第9步:运行程序

此时我们便可以打开真机运行AwesomeProject程序啦,初次运行可能会遇到一些坑:

  • 程序白屏 
    请找到并开启AwesomeProject的悬浮窗权限。 设置 --> 其他应用管理 --> 已下载 --> 点击AwesomeProject --> 权限管理 --> 显示悬浮窗 --> 允许 。miui系统的设置在此处 。
  • Unable to download JS bundle 如果此时你看到一个大红色的报错,那么你成功也不远啦!这个报错是因为app获取不到packager生成的jsbundle文件,我们打开AwesomeProject,摇晃一下设备,就会看到下面的界面:

我们可以设置本地服务器环境解决: Dev settings -> Debug server host & port for device -> 设置电脑IP:port

点击 Reload JS 成功的话就可以看到我们期待已久的Hello World!

第10步:调试程序

再看一下我们通过摇晃设备弹出的菜单选项:

  • Reload JS 
    我们修改项目上任何js代码,都可以通过 Reload JS 命令查看到最新的改动;
  • Debug JS 
    这个命令可以 帮助我们在chrome的调试控制台调试react-native代码,我们在chrome浏览器打开 http://localhost:8081/debugger-ui ,然后点击设备的 Debug JS 就可以在控制台看到我们程序中打印的console.log,我们还可以断点调试。
  • Disable Live Reload 
    这个命令默认打开,我们开发过程中保存代码的同时,设备就会实时刷新。
  • 检查元素 通过 检查元素 我们可以在设备上面看到我们的css元素布局,不过这个功能跟chrome比,真的弱爆了。
  • Disable Perf Monitor 
    打开可以实时显示程序渲染帧频。
  • Dev Settings 
    打开开发调试设置。
结语

折腾环境的过程中确实遇到不少的坑,导致前期学习进度进展的相当缓慢,主要原因是自己对手机开发领域的不熟悉,很多概念都要做一番理解,另一方面也是自己阅读文档不够仔细,错过了一些关键的技术细节,当然还有很多无法避免的客观因素,比如网络环境。踩坑的路程还远远没有结束,需要尽快更加详尽地理解react-native的运行机制,才能更快理解每个报错背后的原因,才能更快地解决问题。

原文:http://www.tuicool.com/articles/26byiuZ


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值