版權聲明:本文爲博主原創文章,如需轉載請註明出處javascript
歡迎Follow個人Github,博客會同步在Github的Blog倉庫更新。也能夠關注CSDN博客的React Native分類html
工欲善其事,必先利其器java
好像在哪聽到一句話,」滿級程序員不須要IDE,不須要自動補全,不須要靜態語法檢查」。對於這種言論,我只想說bullshit。node
IDE對於開發仍是很重要的,而React Native開發官方推薦使用Atom+Nuclide插件。本文會詳細的介紹,如何配置好這個環境,而且以一個示例工程爲例,介紹如何利用這套環境進行開發,與運行,調試,斷點。react
使用Nuclide你可以linux
對了,爲了從零開始,我卸載了以前安裝好的atom和對應的插件android
推薦仍是用Mac開發react Native,由於iOS運行須要Mac的環境。並且,用Mac的話,也比較省心。ios
本文的全部流程,均以Mac爲例git
本文默認讀者已經安裝好了React Native,若是沒有安裝好,能夠按照官網的講解安裝,很簡單,本文側重IDE
注意,若是沒有安裝watchman 和Flow,建議安裝
安裝watchman-自動監聽文件內容變化,刷新數據
brew install watchman
若是提示沒有安裝brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝flow-提供靜態語法檢查,自動補全
brew install flow
若是你以前安裝了flow或者watchman,建議更新到最新版本
brew upgrade watchman
brew upgrade flow
下載地址
這個沒什麼難的,解壓縮以後,把Atom從下載目錄,拖到應用程序目錄便可。
打開Atom,你看到的界面應該是這樣的
這裏,咱們在Atom中,用圖形化界面來安裝。
點擊菜單欄:Atom->Preferences,或者能夠」Command+,」快捷打開
而後,在Install Packets的輸入框中,輸入nuclide,出現的第一個就是咱們想要安裝的,點擊install
默認安裝nuclide以後,會安裝一大堆的依賴包,安裝完成後
能夠看到,紅色部分是額外的Toolbar能夠快捷打開一些選項,小的紅色框裏多了一個nuclide選項。
若是沒有默認安裝這些依賴包,能夠選中,Packages->Settings View->Manage Packets
而後,搜索nuclide,再nuclide package上雙擊,進入設置
勾選Install recommended packets on startup
退出Atom,再打開,會發現自動安裝這些依賴包
react-native init Demo --verbose
而後,打開Atom,點擊Add project folder
再在右側目錄雙擊index.ios.js,你看到的應該是這樣的界面
咱們在這一行上面,輸入fun
class Demo extends Component {
會看到
而後,會車,你就會發現自動生成了方法
function functionName() { }
自動補全確定沒有XCode 或者Android Studio來的那麼強力,不過有總比沒有好對吧。
將光標放到上文提到的functionName
上,你會發現如圖,就是出現了這個方法的類型
這時候,點擊出現的針頭,那麼這個類型標註就會一直顯示在界面上
咱們在function裏隨便輸入
function functionName() { a }
而後,command+s保存文件,這時候,正常會出現以下檢查錯誤
其中
點擊2,你會看到錯誤和警告的列表
若是這裏,沒有檢查出錯誤
打開終端,cd到工程的根目錄,例如個人
/Users/huangwenchen/Desktop/Demo
而後,用終端檢查flow可否正常工做
Leo-2:Demo huangwenchen$ flow
若是出現錯誤
.flowconfig:97 Wrong version of Flow. The config specifies version ^0.25.0 but this is version 0.20.1 Leo-2:Demo huangwenchen$ brew update flow
證實你本地的flow版本和react native默認使用的flow版本不一致,一般,更新到最新版本便可
Leo-2:Demo huangwenchen$ brew upgrade flow ==> Upgrading 1 outdated package, with result: flow 0.25.0 ==> Upgrading flow ==> Downloading https://homebrew.bintray.com/bottles/flow-0.25.0.el_capitan.bottle.tar.gz ######################################################################## 100.0% ==> Pouring flow-0.25.0.el_capitan.bottle.tar.gz ==> Caveats
使用command+鼠標左鍵
第一步,運行react native packager
點擊 command + shift + p打開command palette(打開終端選項),而後輸入
react native start
而後,選擇
Nuclide React Native :Start packager
若是,出現錯誤
/Users/huangwenchen/Desktop/Demo/node_modules/react-native/local-cli/cli.js:123 class CreateSuppressingTerminalAdapter extends TerminalAdapter { ^^^^^ SyntaxError: Unexpected reserved word at exports.runInThisContext (vm.js:73:16) at Module._compile (module.js:443:25) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3
說明你node的版本過低,運行如下命令更新
sudo npm cache clean -f sudo npm install -g n sudo n stable
第二步,終端運行項目
cd到項目目錄,執行
$ react-native run-ios $ react-native run-android
執行完上面一步後,你應該會看到這樣的模擬器界面
而後,在Nuclide中,點擊 command + shift + p打開command palette(打開終端選項),輸入react native debug
接着,點擊模擬器,Command+D,選擇Enable Remote JS debugging
這時候,你會看到,Nuclide中,加載了debug窗口
和不少IDE同樣,在每一行左邊左鍵能夠添加斷點了
同時,修改代碼看看效果
function myLog() { console.log("adtad"); } class Demo extends Component { render() { myLog(); return ( <View style={styles.container}> <Text style={styles.welcome}> Welcome to React Native! </Text> ......
保存,點擊模擬器,Command+R,會發現,停在了斷點處
其它的都是JS的調試技巧了,這裏再也不贅述,後面寫博客的時候,遇到了再說。
像網頁調試,你能夠再瀏覽器裏動態修改網頁的HTML代碼,在React Native中調試你也能夠
Command + shift + p而後打開以下圖
接着,你就會發現像HTML的Element Inspector出現了,你能夠看到視圖的佈局和對應的屬性
Facebook出品的通常都容易安裝,而且使用起來上手相對容易。本文更多的是對英文文檔的總結,以及列出了我在安裝使用過程當中遇到的一些坑,但願能有些幫助。