時刻将react native更新到最新的版本,可以獲得更多api、視圖、開發者工具以及其他一些好東西(譯注:官方開發任務繁重,人手緊缺,幾乎不會對舊版本提供維護支援,是以即便更新可能帶來一些相容上的變更,但建議開發者還是盡一切可能第一時間更新)。由于一個完整的react native項目是由android項目、ios項目和javascript項目組成的,且都打包在一個npm包中,是以更新可能會有一些麻煩。我們會盡量簡化這一流程。以下是目前所需的更新步驟:
請去下面的網址檢視<code>react-native</code>的npm包的最新版本,或使用<code>npm info react-native</code>指令檢視。
<a target="_blank" href="https://www.npmjs.com/package/react-native">https://www.npmjs.com/package/react-native</a>
打開項目目錄下的<code>package.json</code>檔案,然後在<code>dependencies</code>子產品下找到<code>react-native</code>,将目前版本号改到最新,然後在指令行中運作(譯注:如果提示權限錯誤,就在指令前加上sudo):
譯注:從0.24版本開始,react-native還需要額外安裝react子產品,且對react的版本有嚴格要求,高于或低于某個範圍都不可以。本文無法在這裡列出所有react native和對應的react子產品版本要求,隻能提醒讀者先嘗試執行npm install,然後注意觀察安裝過程中的報錯資訊,例如<code>require react@某.某.某版本, but none was installed</code>,然後根據這樣的提示,執行<code>npm install react@某.某.某版本 --save</code>。
新版本的npm包通常還會包含一些動态生成的檔案,這些檔案是在運作<code>react-native init</code>建立新項目時生成的,比如ios和android的項目檔案。為了使老項目的項目檔案也能得到更新(不重新init),你需要在指令行中運作:
這一指令會檢查最新的項目模闆,然後進行如下操作:
如果是新添加的檔案,則直接建立。
如果檔案和目前版本的檔案相同,則跳過。
如果檔案和目前版本的檔案不同,則會提示你一些選項:檢視兩者的不同,選擇保留你的版本或是用新的模闆覆寫。你可以按下<code>h</code>鍵來檢視所有可以使用的指令。
譯注:如果你有修改原生代碼,那麼在使用upgrade更新前,<code>先備份,再覆寫</code>。覆寫完成後,使用比對工具找出差異,将你之前修改的代碼逐漸搬運到新檔案中。