编译一个github上ReactNative应用,根据说明只有3步:
npm install
react-native run-androidenjoy但几个步骤实在是一波三折充满着坎坷,一点都不enjoy。
那就让我们来说一下这个有(keng)趣(die)的故事吧
执行npm install主要的作用在安装第三方依赖包,依赖包的内容在package.json里定义。
npm是node.js里的工具,本人之前并不了解。既然要学习ReactNative就需要了解npm究竟在搞什么鬼。
像这样在线安装的方式是很常见的,已解决项目依赖的问题。ubuntu或者其他的版本的liunx中都像apt-get这样的命令来安装/更新软件。
java程序如果使用maven编译,或者android studio中使用gradle,或者android sdk都是采用在线更新的方式。
实际上本人一直不喜欢在线更新,因为在线更新的工具下载速度往往比不上专门的下载工具,有的还不支持断点续传,更何况有的国外线路下载本来就很慢。更严重的是中国的网络屏蔽了很多国外的资源导致下载失败。
因此往往还要研究怎么手动跟新,看似简单反而麻烦,还不如直接提供下载地址。
正式因为如此,本人在执行npm install的时候,很久也没有动静,经过一番研究后发现,执行npm install后会在相应的目录下生成一个node_modules目录,这个目录中存放第三方的依赖库,ReactNative程序会有一个react-native目录,react-native 这个目录比较大,所以导致执行npm install半天没有反应。
由于速度太慢,我就把文件夹从其他的地方拷贝过来,发现也是可以的(这个目录文件比较多,直接拷贝也不是很快),再执行命令就会更新其他的依赖包,一般依赖包都不是很大,如果网络没有问题,速度还可以,就是react-native这个依赖包比较大。
但不幸的是,我这里是是铁通的宽带,尽然下载失败,于是我就想到,是不是有国内的镜像呢,百度上查了一下还真有国内的镜像:npm淘宝镜像
http://npm.taobao.org/
npm install --registry=https://registry.npm.taobao.org
真是万能的淘宝啊。
然后执行
node node_modules\react-native\packager\packager.js就可以运行服务器端程序了,如果是windows下运行,需要更加前面文章中修复服务器端的bug(如果bug依然存在的话)。如果是用windows编译安卓端loader,也需要根据之前的文章来设置。
这个项目中,安卓端引用的ReactNative已经更新到0.12了,不需要下载前面文章中说的aar了,这样要修复前面文章中android端的bug只需要修改依赖项的版本就可以了,我在写前面那篇文的时候还没更新,ReactNative的更新速度还是挺快的。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.1'compile 'com.facebook.react:react-native:0.12.+'}github上ReactNative项目地址:
https://github.com/race604/ZhiHuDaily-React-Native