Expo SDK 55:npx expo install --check显示依赖已是最新,但版本与新项目模板不一致

移动开发 2026-07-10

我使用 bash npx create-expo-app@latest --template default@sdk-55 创建了一个新的Expo项目。

生成的package.json包含类似 json "dependencies": { "@react-navigation/bottom-tabs": "^7.15.5", "@react-navigation/elements": "^2.9.10", "@react-navigation/native": "^7.1.33", "expo": "~55.0.9", "expo-constants": "~55.0.9", "expo-device": "~55.0.10", "expo-font": "~55.0.4", "expo-glass-effect": "~55.0.8", "expo-image": "~55.0.6", "expo-linking": "~55.0.9", "expo-router": "~55.0.8", ... 的较新依赖版本。

( 这些版本与官方模板匹配:https://github.com/expo/expo/blob/sdk-55/templates/expo-template-default/package.json )

然而,在我现有的项目(大约一个月前创建),我有较旧的版本:

   "@react-native-community/datetimepicker": "8.6.0",
    "@react-navigation/bottom-tabs": "^7.7.3",
    "@react-navigation/drawer": "^7.7.2",
    "@react-navigation/elements": "^2.8.1",
    "@react-navigation/native": "^7.1.28",
    "expo": "~55.0.9",
    "expo-clipboard": "~55.0.9",
    "expo-constants": "~55.0.9",
    "expo-dev-client": "~55.0.19",
    "expo-device": "~55.0.10",
    "expo-font": "~55.0.4",
    "expo-glass-effect": "~55.0.8",
    "expo-image": "~55.0.6",
    "expo-linking": "~55.0.9",
    "expo-router": "~55.0.8",
    ...

我运行了:npx expo install --check

输出:依赖项已是最新。

然而,某些包(例如 @react-navigation/bottom-tabs)的版本显然与新模板不一致。

  1. 为什么expo install --check即使版本与最新模板不同,也会把一切都报告为已是最新?

  2. 对于同一个SDK,更新现有Expo项目的所有依赖以匹配最新的兼容版本,正确的方法是什么?

解决方案

简短的回答是,你已经在正确的做法上了。

Expo最近才将依赖项改为遵循 Expo SDK 版本控制。这也就意味着在此之前,每个版本的编号都不同。现在它们都以 55.x.x 开头,因为你使用的是Expo 55。如果将来升级到Expo 56,例如,这将是 56.x.x

若我们看一下 @react-navigation/bottom-tabs,最近的版本是 7.15.9,与您现在拥有的版本(7.7.3)差距并不大。这个包并非由Expo管理,因此如果你想持续更新,就需要自己定期查看并更新。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章