RN 开发
环境搭建
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 whoaim
/usr/local
注意:如果当前的用户是管理员,需要对权限进行许可,在执行上面的指令前先执行:sudo chmod -R g+w /usr/local
2. Node
使用Homebrew来安装Node.js.
React Native目前需要NodeJS 5.0或更高版本。本文发布时Homebrew默认安装的是最新版本,一般都满足要求。
brew install node
3.Yarn、React Native的命令行工具(react-native-cli)
npm install -g yarn react-native-cli
-g 全局项目都可以使用
4.推荐安装的工具#
Watchman
Watchman是由Facebook提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager可以快速捕捉文件的变化从而实现实时刷新)。译注:此工具官方虽然是推荐安装,但在实践中,我们认为此工具是必须安装,否则可能无法正常开发。
创建RN 工程
react-native init AwesomeProject
cd AwesomeProject
react-native run-ios
使用yarn代替npm install
yard add代替npm install --save
其他坑
react native 调试经典错误Ensure that the packager server is running
react-native run-android 启动项目的时候,会自动启动一个JS服务器,相当于中间服务器的作用,虚拟机的项目连接的就是这个。然而在AS中直接点击运行并不会启动这个服务,需要自己手动启动,在react native项目中运行react-native start 先启动这个服务。
https://github.com/status-im/status-react/issues/2246
mvn -f modules/react-native-status/ios/RCTStatus/pom.xml dependency:unpack
2.坑
React Native: Command run-ios
unrecognized
在项目下面 npm install --save react-native@latest
3.坑
运行命令行 react-native-git-upgrade
react-native version in "package.json" (0.51.0) doesn't match the installed version in "node_modules" (0.52.2).
4.坑
npm install如下冻结:
npm info it worked if it ends with ok
npm verb cli [ '/usr/local/Cellar/node/9.3.0_1/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli 'install',
npm verb cli '--verbose' ]
npm info using npm@5.6.0
npm info using node@v9.3.0
npm verb npm-session 96cbb8fb306ead19
npm info lifecycle edge-react-gui@0.2.0~preinstall: edge-react-gui@0.2.0
npm info lifecycle react-native-http@1.0.0~prepack: react-native-http@1.0.0
⸨ ░░░░░░░░░░░░░░░░░⸩ ⠧ loadIdealTree:loadAllDepsIntoIdealTree: info lifecycle react-nativ
删除package.lock.json之后,问题就消失了。由于某种原因,安装的其余部分花费了很长时间。
转成 5.5.1的版本
npm install -g npm@5.5.1
请将npm降级到5.5.1
如果你正在使用nvm的话
nvm安装8.9.3。
不要使用8.9.4,因为安装npm 5.6.0会破坏构建。
5.坑
Bundling index.ios.js [development, non-minified, hmr disabled] 0.0% (0/1), failed.
解决
yarn install
6.坑
java版本过高
7.坑
给你加点弄node 内存
node --max_old_space_size=4096 node_modules/react-native/local-cli/cli.js start
其他
打包iOS
所以我这次只执行了以下步骤
npm install
make release-ios
pod install
提示
'Statusgo/Statusgo.h' file not found
mvn -f modules/react-native-status/ios/RCTStatus dependency:unpack
pod install
安卓
make release-android
cd android && ./gradlew assembleRelease && cd ..
网友评论