[RN] 踩坑系列如何更新現有專案的EXPO SDK版本

前言:

剛剛入門學 React Native就碰到坑,這是一篇踩坑填坑的紀錄
自從我開始重新自學網頁以來,套件的衝突一直是最惱人的問題之一
以為有Node.js 套件管理就可以解決問題...並沒有!!!

常常在網路(或GitHub)找到一些範例程式,git clone 載回來,用npm重建專案
會看到一堆套件出現 deprecated ,專案就無法執行... ...X!

這種情況也發生在最近剛接觸的React Native上面,這次買的線上教學影片
都是用EXPO來建立專案,還沒碰到套件deprecated 的問題,就先遇到了
EXPO SDK 版本過低無法使用手機EXPO App的問題:

圖1:

圖2:

解決的方法:

expo upgrade

but ! EXPO 的更新要透過 yarn 而不是 npm 所以要另外安裝 yarn

npm install yarn

這樣就可以將 EXPO 專案內的 package.json 裡面的expo sdk 就是你選擇的版本
but !! 對~還是會有專案無法執行的情況...X!
expo upgrade 的過程中,可能會把 node_modules 裡面的套件 給裝壞了...X!
所以把 node_modules 資料夾整個刪掉,重新安裝一次

npm install

同場加映: 幹譙EXPO

雖然我在用EXPO之前,就先做過一番功課了,買的線上課程也刻意選是用EXPO開專案的
對EXPO的期望不會太多,只想寫寫自己的小專案,沒想到那麼快就碰到了!!!

我的目標是寫一個POS系統,目前我買的線上課程對資料端的處裡
本機端就用AsyncStorage 或 JSON檔 ,資料再多一些的就直接用Firebase
那本機端的資料庫可以用那些呢? 除了 SQLite這個從小用到大的之外 ? XD

上網找了一些,發現Realm這玩意,想說用的人那麼多,那麼EXPO應該有支援吧?

圖3:

有人從2017年初就敲碗要求EXPO把realm納入支援...直到我發文的現在
還有一些issue未解,如果用原生的react-native cli 就沒這問題...

反觀一個我之前聽都沒聽過的西瓜資料庫,2018年九月有人敲碗
現在已經有支援這個西瓜了...realm的使用者應該遠大於西瓜...到底???

圖4:

anyway EXPO在學習上,還有是它的便利性,所以我只好繼續用下去


Reference:

  1. Upgrading Expo SDK
  2. Can we use Realm in React Native project with Expo?
  3. It would be great to have out of the box support for realm database.
  4. Build an Offline-First React Native Mobile App with Expo and Realm
  5. [Day2] React Native入門可以不用Expo嗎?
  6. 導讀《React Native at Airbnb》—— 為什麼 Airbnb 放棄了 React Native?