Mac 系统 React Native 开发环境的搭建

最近由于换了环境,所以需要重新配置下 Mac 系统的 React Native (后面简称为 RN)开发环境,在此就记录下怎么搭建一个舒服好用的 RN 开发环境。

目前自己使用的是 VS Code 作为开发的 IDE,RN 开发环境需要 Git、Node、watchman 和开发的IDE等等,因此就是按照这个顺序一步步介绍怎么搭建环境。

Homebrew

首先需要安装 HomebrewHomebrew 是 Mac 系统的软件包管理器,可以方便的帮助我们安装所需的各种软件,一条指令就可以一键安装并配置软件所需的环境,节省了大量的时间。大家可以去 Homebrew官网 了解更多信息。

在终端中输入下面指令安装 Homebrew


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

安装成功后终端会提示如下,到此 Homebrew 的安装就成功了:

使用指令 brew --version 可以输出 Homebrew 的版本。

如果终端提示没有 brew,就需要让终端重新加载下配置文件。重启终端或者让终端重新加载配置,如果使用的是 Bash 终端输入 source ~/.bash_profile,使用的是 zsh 终端就输入 source ~/.zshrc

使用指令 brew install xxx 就可以安装指定的软件,后面 Git 就可以使用 Homebrew
安装。

Git

Mac 系统默认是自带 Git ,但是一般都不是最新的版本。
如果我们想使用到最新版本的Git 可以使用 Homebrew 来安装或者去Git官网下载最新的版本安装。

使用 Homebrew 安装 Git

在终端中输入brew install git 就可以安装 Git,是不是很简单😊~ 安装完成后我们可以使用 git --version 来查看安装的 Git 版本。

使用Git 官网安装包安装

打开从官网下载的 dmg 安装文件 git-xxxx-intel-universal-mavericks.dmg,双击图示的 pkg 文件一路点击下去就可以安装完成,这个过程也是很简单的。

Node

Node 全名是 Node.js ,是一个基于Chrome V8 引擎的 JavaScript 运行时。在 Node 之前 JavaScript 是运行在浏览器环境中的,Node 的出现让我们可以在后台服务器或者终端上运行 JavaScript 代码,RN 开发所使用的本地服务器就是基于 Node 实现的。

在 Node 的中文官网中可以下载到 Node 的安装包,但是我并不推荐使用这个方式来安装。因为 Node 版本更新很快,有时候我们会在不同 Node 版本环境下进行开发,所以我们需要一个 Node 的安装工具方便以后升级和切换不同的 Node 版本,这里推荐使用 nvm 来安装 Node,在这里 可以找到关于 nvm 的说明。

通过 nvm 来安装 Node

安装 nvm 并使用 nvm 来安装 Node 的流程如下:

  • 使用下面指令安装 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
  • 重启终端或者使用 source 指令重新加载终端配置
    在终端输入 nvm 会显示 nvm 支持的指令,其中需要我们注意的我使用红色箭头标识出来了;
  • 使用指令 nvm ls-remote 查看当前可以安装的 node 版本
    在我写这篇时最新的版本是 v8.1.3,长期支持版本 LTS 是 v6.11.0。如果你追求新版本体验的话可以安装最新的版本,如果希望使用一个稳定的版本就安装 LTS 版本
  • 使用指令 nvm install vx.x.x 安装指定的 Node 版本
    这里我安装的是稳定的 v6.11.0 版本,使用 node -v 就可以看到安装的 Node 具体版本。

到此我们就成功安装了 Node ,但是关于 Node 的事情还没有结束,我们需要升级下 npm 的版本。

npm 的简介与升级

在 Node 安装完成后会提示 Now using node v6.11.0 (npm v3.10.10) ,可以看到这里不仅仅存在一个 Node 的版本还有 npm 的版本,那么 npm 是啥呢?

npm 是 Node 的模块管理器,它的用途和前面提到的 Homebrew 非常一致,都是软件的管理器,方便我们安装自己想要的各种软件。有了 npm 我们就可以快速的安装一个他人已经写好的 Node 模块,从而减少我们的开发时间,用现成的轮子而不是自己从头开始写。

在 npm 的官网中我们可以搜索到各种他人已经写好的 node 模块,通过 npm 安装模块也十分简单:

# 安装 react 模块
npm install react 

# 全局安装 react-native-cli 模块 
npm install -g react-native-cli 

这里我只简单列出了2种 install 指令的用法,第二条指令使用 -g 参数,那么这个参数有什么用呢?

npm 安装 node 模块分2种情况:

  • 安装在当前目录下
    比如你在一个空文件夹下执行 npm install执行安装一个模块,你会发现他会在当前文件夹下生产一个 node_modules 文件夹,我们安装的 react 模块就放在这个 node_modules 中,在这种情况下我们就只能在当前路径下才能使用 react 模块。
  • 安装在全局
    使用 -g 参数后会把安装的 node 模块安装在全局上,使用这种方式安装的模块就可以在任意路径下使用了。一般使用这种方式安装的都是使用 node 编写的一些工具,例如我们后面需要安装的 react-native-cli

通常我们要使用最新的 npm,npm 也是安装在全局的 node 工具模块,所以我们可以使用 npm 去升级 npm,感觉有点拗口啊。

使用下面的指令就可以完成 npm 的升级,升级完成后后可以使用 npm -v 查看升级后的 npm 版本。

npm install -g npm

** 注意: 使用 -g 安装的模块是安装在当前 node 版本的目录下的,如果你使用 nvm 切换或者安装新的 node 版本,那么你需要重新在新的 node 下重新安装一次**

React Native 命令行工具 (react-native-cli)

react-native-cli 的安装前面已经说过,直接使用 npm 安装在全局中:

npm install -g react-native-cli

安装完成后需要重新打开终端,或者使用 source 加载终端配置。

Watchman

watchman 是 Facebook 提供的监视文件变化的工具,在其官网上我们可以了解更多信息。

为什么需要安装 watchman呢,在开发 RN 我们会遇到这样的情况,第一次打开一个RN 过程时会等待很长时间,我们可以在终端中看到下面的这样的进度条:

这个时候终端起的 node server 正在将我们写的 RN 代码打包成一个单独的文件,由于使用了很多 node 模块,所以这个打包的过程会需要读取非常多的文件。

一旦我们修改了项目的代码就需要重新打包一次,如果没有 watchman 这类监视文件改动的工具,我们就只能重新把所有的文件
build 一次,这个时间就非常难接受了。而 watchman 的存在可以让本地的 server 知道哪些文件发生了改动,那么我们只需要把这个文件的部分重新打包即可,这个时间就非常快了。

watchman 使用 brew 安装:

brew install watchman

** 注意不要使用 npm 来安装 watchman,如果你在本地 server上看到下面的错误,很大的可能就是你的 watchman 是使用 npm 安装的,而这个 watchman 并不是我们想要的。请通过 npm uninstall watchman -g 卸载后重新使用 brew 来安装。**

Visual Studio Code

至此 RN 的开发环境就搭建完成,剩下的就是 IDE 的一些设置了,这里推荐使用 Visual Studio Code (VS Code)。VS Code 是微软推出的一款开源免费的编辑器,我们可以在他的官网 上下载安装。

修改VS Code语言

VS Code 默认使用的是系统的语言,如果你希望切换到英文界面可以使用下面的方式:

快捷键 ⌘(Command)+⇧(Shift)+p,打开命令面板,输入 language,选择配置语言 (Configure Language)↩回车

修改 localeen ,重启后则为英文,如果需要使用中文则重新设置为 zh-cn

安装终端 code 命令

快捷键 ⌘(Command)+⇧(Shift)+p,打开命令面板,输入shell,选择 在PATH 中安装 "code" 命令 (Install 'code' command in PATH)↩回车

重启终端后我们就在终端中使用指令 code 来打开工程或者单个文件:

# 打开当前目录
code . 

# 打开 1.txt 文件
code 1.txt

颜色主题

快捷键 ⌘(Command)+⇧(Shift)+p,打开命令面板,输入theme,选择 颜色主题 (Color Theme)↩回车


这里推荐 Monokai 主题色

扩展插件的安装

点击下图箭头所示的地方可以安装我们需要的插件,推荐大家安装图示的插件。


一些插件会需要额外的配置,下面会列举出来

ESLint

ESLint 是 JavaScript 和 JSX 的检查工具,可以规范代码,发现编写代码工程中的问题,想了解更多细节可以去中文官网查看,为了正常的使用 ESLint 插件我们需要通过 npm 安装一些必备的模块:

# 安装 ESLint
npm install  -g eslint 

# 安装 ESLint 的 react 支持
npm install  -g eslint-plugin-react

# 安装 ESLint 的 react native 支持
npm install  -g eslint-plugin-react-native

使用 ESLint 之后就可以关闭 VS Code 自带的 TypeScript 检查了,使用快捷键 ⌘(Command)+, 打开配置配置文件,设置 javascript.validate.enable 属性为 false 即可。

每个项目都需要我们配置ESLint,为了生成 ESLint 的配置文件,我们可以在终端中使用 eslint --init

或者 快捷键 ⌘(Command)+⇧(Shift)+p,打开命令面板,输入eslint,选择Create '.eslintrc.json' File,个人是推荐这种方式哈~

但是生成的 .eslintrc.json 的配置还是不够完善,可以看到连默认的demo都会提示一些警告,而这些警告显然是不应该出现的,这就是因为 .eslintrc.json 对 RN 的配置还不够完善。

为了让 ESLint 更贴合 RN 的代码,这就需要使用到我们前面安装的 ESLint react 支持 和 react native 支持,在 .eslintrc.json 中添加如下配置,这个时候我们再回来看代码就不会出现这些错误的警告了。

上面的配置图中只列出了基本的一些配置,如果想了解更多可以点击这查看 ESLint react 支持ESLint react native 支持

相信有了 ESLint 会让大家的 RN 开发更加规范~

至此一个 RN 的开发环境也就搭建完成了😊~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容