美文网首页
RN 环境+坑

RN 环境+坑

作者: Onlyoner | 来源:发表于2019-04-04 13:38 被阅读0次

搭建RN环境:

通过官网直接下载Node的.pkg包
中文官网download
官网download

重装node:
https://www.cnblogs.com/kivenlv/p/6096171.html

利用Homebrew安装(简称brew,MacOSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件)
1.打开终端,执行以下命令安装Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

我们推荐使用Homebrew来安装 Node 和 Watchman。在命令行中执行下列命令安装:

brew install node
brew install watchman

安装成功后

node -v:查看node版本
npm -v:查看npm版本

如果你已经安装了 Node,请检查其版本是否在 v8.3 以上。安装完 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

Watchman则是由 Facebook 提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager 可以快速捕捉文件的变化从而实现实时刷新)。### Yarn、React Native 的命令行工具(react-native-cli)

Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。React Native 的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。

npm install -g yarn react-native-cli

这里可能会遇到坑:
react-native :command not found 在别的路径不能使用react-native命令解决

1. 在终端输入命令: sudo npm install -g react-native-cli  出现的一个类似:/usr/......(/Users/username/.nvm/versions/node/v6.11.1/bin/react-native)的路径记录下路,这里叫做路径A
2.使用vim命令 输入:vim ~/.bash_profile  
   在里面加入:export RN=路径A 
                         export PATH=$RN:$PATH
   然后按“esc”键  结束编辑      并输入“:wq”存储
例如:
export RN=/Users/`username`/.nvm/versions/node/v6.11.1/bin
export PATH=$RN:$PATH
3.输入:source~/.bash_profile   使其生效
4.输入:echo $path  查看是不是有刚刚添加的路径A

如果这个设置配置出现问题则参考如下:

终端用的是iTerm2,安装了 zsh 和 oh-my-zsh,所以打开命令行的时候不在执行~/.bash_profile
解决方案
那么修改 zsh 的配置文件,每次都执行~/.bash_profile
步骤
1.进入zsh配置文件
 vim ~/.zshrc                   
2.在末尾添加
source ~/.bash_profile
3.保存退出
4.配置生效
source ~/.zshrc  

ok了。
插播:iTerm2 + Oh My Zsh 打造舒适终端体验
舒适好用的终端,带提示
https://www.jianshu.com/p/9c3439cc3bdb

2411388-5dfc4e3044f22baf.png

安装完 yarn 后同理也要设置镜像源:

yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global

安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用yarn代替npm install命令,用yarn add 某第三方库名代替npm install 某第三方库名。### Xcode
React Native 目前需要Xcode 9.4 或更高版本。你可以通过 App Store 或是到Apple 开发者官网上下载。这一步骤会同时安装 Xcode IDE、Xcode 的命令行工具和 iOS 模拟器。

Xcode 的命令行工具

启动 Xcode,并在Xcode | Preferences | Locations菜单中检查一下是否装有某个版本的Command Line Tools。Xcode 的命令行工具中包含一些必须的工具,比如git等。

Xcode Command Line Tools

创建新项目

使用 React Native 命令行工具来创建一个名为"AwesomeProject"的新项目:

!!!注意!!!:init 命令默认会创建最新的版本,而目前最新的 0.45 及以上版本需要下载 boost 等几个第三方库编译。这些库在国内即便翻墙也很难下载成功,导致很多人无法运行iOS项目!!!中文网在论坛中提供了这些库的国内下载链接。如果你嫌麻烦,又没有对新版本的需求,那么可以暂时创建0.44.3的版本。

react-native init AwesomeProject

提示:你可以使用--version参数(注意是个杠)创建指定版本的项目。例如react-native init MyApp --version 0.44.3。注意版本号必须精确到两个小数点。

如果你是想把 React Native 集成到现有的原生项目中,则步骤完全不同,请参考集成到现有原生应用

编译并运行 React Native 应用

在你的项目目录中运行react-native run-ios

cd AwesomeProject
react-native run-ios

提示:如果 run-ios 无法正常运行,请使用 Xcode 运行来查看具体错误(run-ios 的报错没有任何具体信息)。

很快就应该能看到 iOS 模拟器自动启动并运行你的项目。

AwesomeProject on iOS

react-native run-ios只是运行应用的方式之一。你也可以在 Xcode 或是Nuclide中直接运行应用。

如果你无法正常运行,先回头仔细对照文档检查,然后可以看看论坛的求助专区

在真机上运行

上面的命令会自动在 iOS 模拟器上运行应用,如果你想在真机上运行,则请阅读在设备上运行这篇文档。

修改项目

现在你已经成功运行了项目,我们可以开始尝试动手改一改了:

  • 使用你喜欢的编辑器打开App.js并随便改上几行。
  • 在 iOS 模拟器中按下⌘-R就可以刷新 APP 并看到你的最新修改!(如果没有反应,请检查模拟器的 Hardware 菜单中,connect hardware keyboard 选项是否选中开启)

完成了!

恭喜!你已经成功运行并修改了你的第一个 React Native 应用。

image

接下来?

  • 试着在开发者菜单中打开Live Reload,现在你只要一保存代码应用就会自动完整刷新。

  • 如果你想把 React Native 集成到现有的原生项目中,则请参考集成到现有原生应用

如果你想从头开始学习 React Native 开发,可以从尝试编写 Hello World开始。

提示:
把node_modules/目录记录到.gitignore文件中(即不上传到版本控制系统,只保留在本地)。

vim ~/.gitignore_global

集成到现有的iOS项目中时:

https://reactnative.cn/docs/integration-with-existing-apps/
坑: pod install 会出错

1.首先检查路径:./是当前目录,../是上一级目录
image.png
ls
vim Folly.podspec
查看spec.platforms = { :ios => "9.0", :tvos => "9.2" } (此处可不能改改的是下边图片所示两处)

修改以下图片这两处的版本号即可ok。


image.png
image.png
image.png

iOS 原生混合RN开发最佳实践
https://www.jianshu.com/p/f9812f601a2c
RN项目接入CodePush实现热更新技术
https://github.com/guangqiang-liu/CodePushDemo

相关文章

网友评论

      本文标题:RN 环境+坑

      本文链接:https://www.haomeiwen.com/subject/skmfiqtx.html