转自骆神创建、陈神修改,仅供学习
1、开发环境的快速搭建
1.1 Homebrew的安装
Homebrew, Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件。使用以下命令安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
注:在Max OS X 10.11(El Capitan)版本中,homebrew在安装软件时可能会碰到/usr/local
目录不可写的权限问题。
可以使用下面的命令修复:
sudo chown -R `whoami` /usr/local
1.2 Node
使用Homebrew来安装Node.js.
React Native目前需要NodeJS 5.0或更高版本。本文发布时Homebrew默认安装的是最新版本,一般都满足要求。
brew install node
安装完node后建议设置npm镜像以加速后面的过程(或使用科学上网工具)。
注意:不要使用cnpm!cnpm安装的模块路径比较奇怪,packager不能正常识别!
npm config set registry https://registry.npm.taobao.org --global npm config set disturl https://npm.taobao.org/dist --global
1.3 Yarn、React Native的命令行工具(react-native-cli)
Yarn是Facebook提供的替代npm的工具,可以加速node模块的下载。React Native的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。
npm install -g yarn react-native-cli
安装完yarn后同理也要设置镜像源:
yarn config set registry https://registry.npm.taobao.org --global yarn config set disturl https://npm.taobao.org/dist --global
如果你看到EACCES: permission denied
这样的权限报错,那么请参照上文的homebrew译注,修复/usr/local
目录的所有权:
sudo chown -R `whoami` /usr/local
安装完yarn之后就可以用yarn代替npm了,例如用yarn
代替npm install
命令,用yarn add 某第三方库名
代替npm install --save 某第三方库名
。
1.4 Xcode/Android Studio
iOS开发安装Xcode,安卓开发安装Android Studio。
React Native目前需要Xcode 8.0 或更高版本。你可以通过App Store或是到Apple开发者官网上下载。这一步骤会同时安装Xcode IDE和Xcode的命令行工具。
虽然一般来说命令行工具都是默认安装了,但你最好还是启动Xcode,并在
Xcode | Preferences | Locations
菜单中检查一下是否装有某个版本的Command Line Tools
。Xcode的命令行工具中也包含一些必须的工具,比如git
等。
1.5 CocoaPods(安卓跳过此步)
在安装CocoaPods之前,首先要在本地安装好Ruby环境。
假如你在本地已经安装好Ruby环境,那么使用以下命令下载和安装CocoaPods:
sudo gem install cocoapods
1.6 测试安装
iOS使用以下命令测试安装成功与否:
react-native init AwesomeProject
cd AwesomeProject
react-native run-ios
提示:如果run-ios无法正常运行,请使用Xcode运行来查看具体错误(run-ios的报错没有任何具体信息)。
安卓使用以下命令测试安装成功与否:
react-native init AwesomeProject
cd AwesomeProject
react-native run-android
如果你在设备上看到了红屏报错,请参阅在设备上运行。
2、获取项目后的配置与安装
从远程仓库获取到项目代码后,执行以下命令安装node_modules文件夹及启动服务:
cd 项目文件夹
npm install 或者 yarn install
npm start 或者 yarn start
3、rn学习及提升
https://zhuanlan.zhihu.com/p/22782487
http://www.w3school.com.cn/js/index.asp (【JS教程】、【JS HTML DOM】、【JS 对象】)
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript (JavaScript比较权威的reference,用于梳理、学习知识)
http://www.infoq.com/cn/es6-in-depth/ (一、四~七、九、十三~十六)
http://es6.ruanyifeng.com (一本讲ES6的书,用于梳理、查找、学习知识)
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript (JavaScript比较权威的reference,用于梳理、查找、学习知识)
http://www.w3school.com.cn/html/index.asp (【HTML基础教程】前10小节)
https://facebook.github.io/react-native/docs/layout-props.html
http://www.flexboxpatterns.com/home
https://facebook.github.io/react/docs/jsx-in-depth.html (【QUICK START】、【ADVANCED GUIDES】JSX In Depth, Refs and the DOM)
https://facebook.github.io/react-native/docs/components-and-apis.html (【Guides】1-4, 7-11, 13~16)
https://facebook.github.io/react-native/docs/native-modules-ios.html (【Guides (iOS)】)
https://facebook.github.io/react-native/docs/native-modules-android.html (【Guides (Android)】)
https://facebook.github.io/immutable-js/
https://facebook.github.io/jest/