React Native學(xué)習(xí) --- 環(huán)境搭建

一、 React Native 環(huán)境需求

1.1 安裝Homebrew

Homebrew是Mac中的一個包管理工具,沒有安裝的用戶可以通過termnal安裝,安裝過的用戶并且升級為最新版的可以直接跳至 1.2辈赋。

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

已經(jīng)安裝過Homebrew的用戶,通過下面命令將其升級為最新版,版本過低將會導(dǎo)致無法安裝后續(xù)幾個組件.

brew update

目前樓主使用的版本為:0.9.9


Homebrew版本

1.2 安裝watchman

watchman是用于監(jiān)聽文件變化的工具俯萌,應(yīng)該是用于監(jiān)聽文件變化,然后界面做出響應(yīng)上枕。執(zhí)行如下命令

brew install watchman

1.3 安裝flow

flow用于對代碼進行類型檢查绳瘟,用于靜態(tài)分析js語法錯誤的工具。執(zhí)行如下的命令:

brew install flow

1.4 安裝nvm

nvm 是 Node.js 的版本管理器姿骏,可以輕松安裝并管理各個版本的 Node.js 糖声。
注意:不建議用戶使用Homebrew安裝nvm,有可能會遇到很多坑分瘦,這是一部血淚史蘸泻,不在此贅述,自我感覺RP好的可以嘗試。

1.4.1 使用Homebrew安裝(不建議)

通過 Homebrew 安裝命令:

brew install nvm

將下列指令加入 .bash_profile(一般termnal會提示)

 NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

重新載入 .bash_profile設(shè)定嘲玫,使其生效

$ source .bash_profile
1.4.2 直接安裝nvm

使用官網(wǎng)提供的直接安裝方式

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

然后按照終端提示:依次輸入:

export NVM_DIR="/Users/CrabMan/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
Paste_Image.png
1.4.3 nvm安裝node.js和npm

npm是用于node.js包依賴管理的工具悦施,安裝完node.js以后.
用下面命令查看有哪些版本可以安裝

nvm ls-remote

一般采用設(shè)置并安裝

nvm install node && nvm alias default node 

二、 安裝React Native

首先 node 要在4.0以上去团,最好再更新一下 npm 的版本

npm i npm -g

注意:Mac 用戶如果無法成功或者是非全局安裝抡诞,可以使用全局安裝穷蛹,這時需要添加 sudo
提高命令的權(quán)限

sudo npm i npm -g   # 需要輸入開機密碼

因為天朝限制,把 npm 指向國內(nèi)鏡像昼汗,避免網(wǎng)絡(luò)環(huán)境對安裝過程造成的麻煩

$ npm config set registry https://registry.npm.taobao.org
$ npm config set disturl https://npm.taobao.org/dist

正式安裝 react-native 命令行工具

$ npm i react-native-cli -g
# Mac 用戶需要沒有反應(yīng)可以嘗試 $ sudo npm i react-native-cli -g

三肴熏、 初始化RN項目

這里的項目名必須以大寫字母開頭。否則會報錯

react-native init CrabManRN

初始化項目時顷窒,因為天朝網(wǎng)速原因蛙吏,可能會一直卡在(如果卡的時間較長,可以嘗試重裝鞋吉,見文末)

Installing react-native package from npm...

耐心等待......網(wǎng)絡(luò)上面查到的目前等待時間最久的時間為兩天.

四鸦做、 iOS 開發(fā)環(huán)境準(zhǔn)備

IOS 的開發(fā)環(huán)境相對來說比較簡單了,只需要保證 Xcode 版本在 7.0 以上就行了,否則RN中的部分OC語法會不支持谓着。cd到RN的項目路徑下泼诱,使用終端build 并運行 iOS項目.

$ cd CrabManRN
$ react-native run-ios
運行iOS項目

一堆命令滾動完畢后會彈出新的終端窗口


等待中...

等待一段時間以后,終端顯示完成100%

完成

期間模擬器會自動打開,繼續(xù)等待完成至100%


模擬器效果圖

五 Android 開發(fā)環(huán)境準(zhǔn)備

5.1 安裝Git

Mac上如果你已經(jīng)安裝了XCode赊锚,那么Git也就隨之安裝了坷檩,否則請使用homebrew進行安裝:

brew install git

5.2 安裝Android SDK(已安裝的請?zhí)^這一步)

首先下載安裝最新版的JDK
然后使用Homebrew安裝Android SDK:

$ brew install android-sdk

定義ANDROID_HOME環(huán)境變量

重要: 確保ANDROID_HOME
環(huán)境變量指向你已經(jīng)安裝的Android SDK目錄:在你的~/.bashrc 或 ~/.bash_profile,而小數(shù)點開頭的文件在Finder中是隱藏的改抡,這兩個文件有可能還沒有被創(chuàng)建矢炼。請在終端下使用sudo vi ~/.bashrc
命令創(chuàng)建或編輯。如不熟悉vi操作阿纤,請點擊這里學(xué)習(xí)
筆者是通過Homebrew安裝SDK的句灌,則加入下列路徑

export ANDROID_HOME=/usr/local/opt/android-sdk

直接安裝Android SDK的用戶使用下面命令:

# 可能是(具體看Android studio中把SDK放在哪):
export ANDROID_HOME=~/Library/Android/sdk

使用終端下載必要的sdk
選中以下項目:
Android SDK Build-tools version 23.0.1(這個必須版本嚴(yán)格匹配23.0.1)
Android 6.0 (API 23)
Local Maven repository for Support Libraries(之前叫做Android Support Repository)


下載列表01
下載列表02

筆者沒有使用模擬器,直接真機調(diào)試欠拾,在運行之前需要將一個已經(jīng)打開開發(fā)者模式胰锌,并且打開USB調(diào)試的安卓手機連接到電腦上,使用下面名列確認(rèn)是否連接

adb list
確認(rèn)自己手機已連接

在終端cd到項目路徑下藐窄,運行安卓程序.

react-native run-android

就在剛剛资昧,前天運行的好好的程序今天飄紅了,我的內(nèi)心是崩潰的,貌似是昨天我修改源文件造成的荆忍,現(xiàn)在我重新初始化一個RN項目格带,運行試試.

初始化成功

接下來嘗試運行 :

$   cd /Users/CrabMan/Desktop/CRAB_RN
$ react-native run-android
環(huán)境變量問題
修改環(huán)境變量并重新運行

運行成功


運行成功

至此,reactNative的環(huán)境搭建刹枉,項目的初始化叽唱,以及iOS以及Android上分別運行成功。其實我知道微宝,這一切才剛剛開始

六棺亭、管理React Native庫的版本

在開發(fā)中,會經(jīng)常的去控制React Native的版本庫蟋软,得以適配各種條件下的開發(fā)镶摘,那該如何查看嗽桩、控制ReactNative的版本呢?

6.1查看本地的React Native的版本

$ react-native --version
查看當(dāng)前版本

6.2 更新本地的React Native的版本

npm update -g react-native-cli

6.3 查詢react-native的npm包最新版本

NPM的全稱是Node Package Manager 凄敢,是一個NodeJS包管理和分發(fā)工具碌冶,已經(jīng)成為了非官方的發(fā)布Node模塊(包)的標(biāo)準(zhǔn)。
npm包地址 :
https://www.npmjs.com/package/react-native
命令行查詢
npm info react-native

6.4 升級或者降級npm包的版本

$ npm install --save react-native@0.18

6.5 更新項目templates文件(可選)

新的npm包會包含更新在運行react-native init命令生成的一些動態(tài)文件贡未,例如init創(chuàng)建項目的時候會生成iOS和Android的子項目,我們可以通過以下的命令進行獲取最新的代碼
命令行查詢

     $ react-native upgrade

七蒙袍、WebStrom設(shè)置代碼提示

8.1 從gitHub上下載xml插件

$ git clone https://github.com/virtoolswebplayer/ReactNative-LiveTemplate  

8.2 安裝

將ReactNative.xml文件復(fù)制~/Library/Preferences/WebStorm10/templates 俊卤,然后重啟 WebStrom.如果路徑下沒有templates文件夾,可以手動創(chuàng)建一個害幅。

4常見的問題及其解決辦法

4.1.初始化項目時消恍,長時間卡在Installing react-native package from npm...

當(dāng)時遇到三次遇到這個問題的原因是使用Homebrew安裝的nvm,但是去nvm官網(wǎng)發(fā)現(xiàn)以现,nvm不支持Homebrew,通過直接安裝nvm解決該問題.
首先卸載Homebrew安裝的nvm

brew uninstall nvm

保險起見狠怨,去brew的路徑將所有nvm的文件刪除.
nvm文件路徑: /usr/local/lib
檢查local路徑下的文件,是否刪除干凈邑遏,然后重新安裝.

4.2.直接安裝nvm配置按照終端環(huán)境變量報錯

-bash: /usr/local/opt/nvm/nvm.sh: No such file or directory
或者類似的問題佣赖,例如:
/usr/local/bin/npm: No such file or directory
等等
原因是nvm不在你的環(huán)境路徑下面需要重新配置
打開你的/.bashrc(或者/.zshrc,或者/.profile记盒,或者/.bash_profile)因此終端輸入

open ~/.bash_profile

在打開的文件中輸入

.~/.nvm/nvm.sh
輸完代碼以后的效果

在末尾添加如下命令

. ~/.nvm/nvm.sh

保存并退出憎蛤,然后重啟終端,輸入nvm纪吮,完美解決

完美解決

4.3.運行Android遇到問題:application (項目名) has not been registered

真機效果圖

這種問題在stackflow中找到了解決問題的辦法,出現(xiàn)這種現(xiàn)象的解決辦法有三種.

4.3.1.最為常見的原因

在運行現(xiàn)在的項目的時候俩檬,reactNative的服務(wù)依舊保持著上一個項目。解決辦法很簡單只需要在終端中結(jié)束所有進程碾盟,然后重新啟動服務(wù)即可

$ ps aux | grep react
$ npm start 
#確保程序啟動以后  control + c
$ react-native run-android
4.3.2 IDE影響

因為anroid studio或者是xcode的影響棚辽,完全退出所有的IDE,重啟終端冰肴,然后重新運行項目屈藐,即可解決。

4.3.3.較為少見(很少有人會修改項目名)

根目錄./index.ios.js中
AppRegistry.registerComponent('項目名',() => ...);
./ios/項目名/appDelegate.m中的
RCTRootViewrootView = [[RCTRootViewalloc]initWithBundleURL:jsCodeLocation
moduleName:@"項目名" launchOptions:launchOptions];
或是
./android/app/src/main/java/com/項目名/MainActivity.java*中的
mReactRootView.startReactApplication(mReactInstanceManager, "項目名", null);
項目名沒有保持一致熙尉,修改為相同的即可估盘。

4.4 Could not connect to development server

Screenshot_2016-08-28-18-29-37.png

原因屏幕中已經(jīng)顯示清楚了,一般按照屏幕的解決辦法都可以解決骡尽。
說下ip地址的解決辦法 遣妥,首先在終端查看ip

$ ifconfig
Paste_Image.png

然后調(diào)出開發(fā)者菜單(搖晃手機)
-> dev Settings-> debug server host & port ...
把剛才查到的本機ip + 端口號填上 (我的是 192.168.1.255:8081)返回 并Reload 下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市攀细,隨后出現(xiàn)的幾起案子箫踩,更是在濱河造成了極大的恐慌爱态,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件境钟,死亡現(xiàn)場離奇詭異锦担,居然都是意外死亡,警方通過查閱死者的電腦和手機慨削,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門洞渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缚态,你說我怎么就攤上這事磁椒。” “怎么了玫芦?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵浆熔,是天一觀的道長。 經(jīng)常有香客問我桥帆,道長医增,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任老虫,我火速辦了婚禮叶骨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘祈匙。我一直安慰自己邓萨,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布菊卷。 她就那樣靜靜地躺著缔恳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洁闰。 梳的紋絲不亂的頭發(fā)上歉甚,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音扑眉,去河邊找鬼纸泄。 笑死,一個胖子當(dāng)著我的面吹牛腰素,可吹牛的內(nèi)容都是我干的聘裁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼弓千,長吁一口氣:“原來是場噩夢啊……” “哼衡便!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤镣陕,失蹤者是張志新(化名)和其女友劉穎谴餐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呆抑,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡岂嗓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鹊碍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厌殉。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖侈咕,靈堂內(nèi)的尸體忽然破棺而出公罕,到底是詐尸還是另有隱情,我是刑警寧澤乎完,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布熏兄,位于F島的核電站品洛,受9級特大地震影響树姨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桥状,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一帽揪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辅斟,春花似錦转晰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酵幕,卻和暖如春扰藕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芳撒。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工邓深, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笔刹。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓芥备,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舌菜。 傳聞我的和親對象是個殘疾皇子萌壳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容