はじめに
しばらく触っていなかった Expo / React Native プロジェクトを久々に起動すると、
- いろんな警告が出る
- 動くけど挙動が変
みたいなことが起きます。
この記事では、まず最短で いつもの開発状態」に戻すためのことを、
何をしていて・なぜこの順番なのかなどを含めて解説します。
1. まず パッケージを更新する
bun update
何をしている?
パッケージを更新しています。
なぜ最初?
Expo 側の修正の前に、
JS 側が壊れている状態だと原因が混ざります。
- 依存ズレで落ちてるのか
- Expo の expected version で落ちてるのか
が分からなくなるので、まず JS 側を整えるのが安定。
ここで詰まったら
bun update の後に挙動が怪しい / install 失敗するなら、
一度入れ直しが早いです。
rm -rf node_modules
rm -f bun.lockb bun.lock
bun install
2. Expo の想定に依存を揃える
npx expo install --fix
何をしている?
Expo が使っている SDK(= Expo が想定する環境)に合わせて、
色々な依存関係を “正しい版”に寄せます。
react-native@x.y.z - expected version: ...react-native-reanimated expected: ...
このような警告は、だいたいこれで解消できます。
なぜ expo install が大事?
普通の bun add / npm i だと「最新版」や「semverの範囲」で入りやすい。
でも Expo は SDK ごとに 相性が良い(=想定している)バージョンがあります。
expo install はそこを見て入れてくれるので、復帰時は特に安定。
3.残った地雷を診断する
npx expo doctor
何をしている?
プロジェクトの状態を診断して、
- 設定ファイルの矛盾
- 非推奨構成
- 依存の不整合
など間違ってる箇所を先に見つけます。
なぜ --fix の後?
直す前に doctor を回すと、
ズレが多すぎて分かりづらくになりがちです。
先に expo install --fix で間違えているところを揃えてから doctor を見ると、
本当に直すべき問題が浮き上がるのでおすすめ。
4.キャッシュを消して起動する
npx expo start -c
何をしている?
色々なキャッシュをクリアして起動します。
なんで最後?
依存を直したのに、
古いキャッシュが残ってるせいで「直ってないように見える」ことがよくあります。
復帰時はとくにキャッシュが原因になることがあるので、
最後は -c 付きでの起動がおすすめ
最後に
困ったら、この4コマンドを上から順に叩けば大体なんとかなります。