前言:
剛剛入門學 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:
- Upgrading Expo SDK
- Can we use Realm in React Native project with Expo?
- It would be great to have out of the box support for realm database.
- Build an Offline-First React Native Mobile App with Expo and Realm
- [Day2] React Native入門可以不用Expo嗎?
- 導讀《React Native at Airbnb》—— 為什麼 Airbnb 放棄了 React Native?