#
#
轉載請標明出處:
[http://blog.csdn.net/developer_jiangqq/article/details/50533493](http://blog.csdn.net/developer_jiangqq/article/details/50533493)
本文出自:[【江清清的博客】](http://blog.csdn.net/developer_jiangqq)
# (一)前言
? ? ??【好消息】個人網站已經上線運行,后面博客以及技術干貨等精彩文章會同步更新,請大家關注收藏:[http://www.lcode.org](http://www.lcode.org/)?
? ? ? ?現在React Native For? Android剛剛開源才不久,現在整體功能還不健全完善以及開發中的坑(Bug)還是比較多的,以至于到現在還沒有正式版本。項目人員正在加緊開發維護,修復Bug,所以現在React Native項目的版本更新速度還是相對來講是比較快的。
???????? 剛創建的React Native技術交流群(282693535),歡迎各位大牛,React Native技術愛好者加入交流!同時博客左側歡迎微信掃描關注訂閱號,移動技術干貨,精彩文章技術推送!
??????? 在如此現狀之下,我們就要及時關注項目官網了,要將React Native往新版本進行更新,這樣我們可以去使用更多的APIs,視圖Views,以及開發者工具以及其他一些好用的東西。【注】.瀏覽版本更新日志就會發現整體FB官方開發進度還是非常緊張的,這樣就很容易導致舊版本會出現不能用的情況,后期可能會出現不可預料的情況,這邊建議大家盡量更新最新正式版本。
??????? 我們大家都知道一個React Native項目使用Android項目,iOS項目和JavaScript項目三部分進行組成的,而且三者都關聯打包在npm包內的,所以該項目版本進行更新是比較繁瑣的。下面我來給大家講解一下React Native項目的升級步驟。
# (二)更新React Native項目依賴包版本??????
????????? 首先我們需要查看本地的React Native的版本,命令行輸入如下命令:
~~~
react-native --version
~~~
如果之前我們是按照我前面的文章([點擊進入React Native環境搭建](http://blog.csdn.net/developer_jiangqq/article/details/50456967))直接命令行npm install -g react-native-cli創建的話,那么應該會出現如下的情況:

會發現版本號是:0.1.7,這其實是我本地cli的版本,我們需要執行如下的代碼
~~~
npm update -g react-native-cli
~~~
這樣之后就可以同時查看reactnative和cli的版本了,update更新截圖如下:

接下來在執行以下react-native? --version查看版本發現,我當前的react native版本為0.17.0

?????? 接下來我們來進行查詢react-native的npm包得最新版本(react native的npm包的地址為:[https://www.npmjs.com/package/react-native](https://www.npmjs.com/package/react-native)),或者采用命令npm info react-native進行查看:
具體截圖如下:


現在最新版本為:0.18.0-rc預覽版本。
下面我拿之前創建的項目進行測試AwesomeProject:
?進行打開該項目中的package.json文件,找到dependencies標簽里邊我們把react-native的版本修改成最新版本如下:

接下來就是執行如下代碼進行安裝(注意請命令行切換到項目主文件夾):-這個安裝過程還是需要花點時間的
~~~
npm install
~~~
運行截圖如下:


這樣該項目就已經更新成了最新版本的React Native的Node依賴包了。
下面在運行react-native --version命令查看一下當前版本:

當然根據官網文檔能知道:
?????? 現在已經支持在項目中運行npm install - -save命令來進行安裝react-native的新版本了,例如我們需要更新到0.18版本可以采用終端執行如下的命令:
~~~
npm install --save react-native@0.18
~~~
# (三)更新項目templates文件
??????? 新的npm包會包含更新在運行react-nativeinit命令生成的一些動態文件,例如init創建項目的時候會生成iOS和Android的子項目,我們可以通過以下的命令進行獲取最新的代碼
~~~
react-native upgrade
~~~
運行截圖如下:

注意以上紅色框出來的地方,這邊會檢查修改的文件,讓我們進行選擇覆蓋還是保留的,我這邊直接選擇了覆蓋。具體情況看大家實際使用情況。
以上的react-native upgrade會進行檢查項目的文件,然后進行如下幾個操作:
- 如果是新添加的文件,會進行直接創建
- 如果更新的文件和當前項目的文件是一樣的,就會直接忽略跳過
- 如果更新的文件和當前項目的文件不同,有沖突的情況,會讓我們進行選擇是保留原來的文件還是用更新的文件覆蓋,這個要看實際情況了。
現在更新已經完成了,下面就是運行一下看一下是否能夠成功運行,運行如下命令:
~~~
react-native run-android
~~~
運行截圖如下:

# (四)React Native版本降級方法
????????? 剛剛我們已經完成React Native庫升級了,現在假如有這樣的一個情況,我們的項目直接創建的用了最新版本的,突然發現最新版本可能不太穩定,在開發過程中就會遇到不可預期的bug。那么就可以考慮進行降級到一個比較穩定的版本比較保險。第一種方案我們參考上面的流程就行了,上面是修改成最新版本的,那么現在我們修改一個低版本,然后執行上面的同樣的命令就OK了。但是我們降級這邊給大家講第二個方案,還記得上面有一個官方推薦安裝react-native的命令不?
~~~
npm install --save react-native@0.18
~~~
那么我們現在假如要降級到0.17版本,如下命令行執行一下就OK了。

上面運行已經安裝了0.17版本了,查看項目的package.json文件會發現版本已經變成了0.17

接下來執行和上面的步驟一樣執行一下react-native upgrade命令如下:

最后測試運行react-native run-android一下,看看降級成功與否就可以了。
# (五)最后總結
????????? 今天我們主要介紹了React Native for Android項目React Native庫的升級以及降級的方法,大家有問題可以加一下群React Native技術交流群(282693535)或者底下進行回復一下。??
? ? ? ?尊重原創,轉載請注明:From Sky丶清([http://blog.csdn.net/developer_jiangqq](http://blog.csdn.net/developer_jiangqq)) 侵權必究!
? ? ? ?關注我的訂閱號(codedev123),每天分享移動開發技術(Android/IOS),項目管理以及博客文章!(歡迎關注,第一時間推送精彩文章)

? ? ?關注我的微博,可以獲得更多精彩內容
? ? ??[](http://weibo.com/u/1855428195?s=6uyXnP)
- 前言
- React Native For Android環境配置以及第一個實例(1)
- React Native開發IDE安裝及配置(2)
- React Native應用設備運行(Running)以及調試(Debugging)(3)
- React Native移植原生Android項目(4)
- React Native進行簽名打包成Apk(5)
- React Native庫版本升級(Upgrading)與降級講解(6)
- React Native控件之View視圖講解(7)
- React Native配置運行官方例子-初學者的福音(8)
- React Native控件之Text組件講解(9)
- React Native控件之Image組件講解與美團首頁頂部效果實例(10)
- TextInput組件講解與QQ登錄界面實現(11)
- ProgressBarAndroid進度條講解(12)
- DrawerLayoutAndroid抽屜導航切換組件講解(13)
- ScrollView組件講解(14)
- ToolbarAndroid工具欄控件講解以及使用(15)
- Switch開關與Picker選擇器組件講解以及使用(16)
- ViewPagerAndroid講解以及美團首頁頂部效果實例(17)
- Touchable*系列組件詳解(18)
- React Native專題文章講解,不斷更新中.....
- ListView組件講解以及最齊全實例(19)
- 超詳細Windows版本編譯運行React Native官方實例UIExplorer項目(多圖慎入)
- React Native超棒的LayoutAnimation(布局動畫)
- PullToRefreshViewAndroid下拉刷新組件講解(20)
- RefreshControl組件詳解(21)
- WebView組件詳解以及實例使用(22)