ログオフ
開発2026-06-06

expo-router のバージョン番号が Expo SDK に合わせて変わっていた(4.x → 56.x)

expo-router のバージョンを手書きで指定したら動かなくなった。SDK 56 からバージョン体系が変わっていた。npx expo install を使えば自動解決する。

expo-router のバージョンを package.json に手書きで指定したら動かなくなった。Expo SDK 56 からバージョン体系が変わっていた話。

事象

  • Expo SDK をアップグレードし、あわせて expo-router も更新しようとした
  • package.json に "expo-router": "^4.x.x" のように手書きで指定してインストール
  • ビルドエラーや実行時エラーが出る。あるいは npx expo install --fix を実行すると expo-router のバージョンが変わる

原因

Expo SDK 56 から、expo-router のバージョン番号が Expo SDK のバージョンに揃えられた

| Expo SDK | expo-router のバージョン | |---------|----------------------| | 〜55 | 4.x 系 | | 56 | 56.x |

SDK 55 まで expo-router は 4.x 系だった。SDK 56 で突然 56.x に飛ぶ。この体系変更を知らずに "expo-router": "^4.x.x" と手書き固定していると、SDK 56 環境で古いバージョンが入り続ける。

解決策

バージョンを手書きせず、npx expo install に任せる。

npx expo install expo-router

このコマンドは Expo SDK のバージョンを読んで、対応する expo-router の正しいバージョンを自動で選択・インストールする。

既存の package.json に固定バージョンが残っている場合は、--fix フラグで一括修正できる:

npx expo install --fix

これで expo-router を含む依存パッケージが SDK に合った正しいバージョンに揃う。

補足

  • npx expo install は Expo が管理する「互換性テーブル」をもとにバージョンを解決する。手書きの semver より信頼性が高い
  • expo-router だけでなく react-native-screensexpo-linking 等の Expo 管理パッケージも同様に npx expo install 経由が安全
  • SDK のメジャーアップグレード時は npx expo install --fix を必ず走らせる習慣にしておくと、バージョン不整合系のエラーをまとめて防げる

※ 本記事にはアフィリエイトリンクが含まれます。

開発 一覧へ