【问题标题】:Why does Expo create React native app with old versions of dependencies?为什么 Expo 创建带有旧版本依赖项的 React 原生应用程序?
【发布时间】:2021-03-17 15:33:14
【问题描述】:

所以我遇到了很多依赖关系问题,例如我无法安装“react-leaflet”来使用 map,因为它会发生冲突。我检查了全新的 expo react-native 应用程序依赖项的版本,看起来其中一些是旧版本。

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "expo": "~40.0.0",
    "expo-status-bar": "~1.0.3",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
    "react-native-web": "~0.13.12"
  },
  "devDependencies": {
    "@babel/core": "~7.9.0"
  },
  "private": true
}

例如 react 应该是 17.0.1,babel/core 应该是 7.13 等等。它不允许我更新。顺便说一下,我的 expo 版本是最新的。

【问题讨论】:

    标签: reactjs react-native


    【解决方案1】:

    当您使用 expo 的最新版本时,您的 expo 不一定会附带最新的 React 版本或最新的 React 本机版本。

    Expo 附带了很多其他的包(一些是它自己的包,一些是第三方的)。因此,Expo 版本中使用的所有包都需要与他们使用的任何 React 版本兼容。

    如果不兼容,expo 需要更改和更新自己的包,同时等待他们使用的其他第三方包与 React 的最新版本兼容,这时候 React 团队可能会出来与另一个版本。

    这样的任务需要多个不同团队的时间、资源和精力。因此,expo 使用与他们使用的所有包兼容的 React 版本。

    React 环境(包括 React Native)在不断变化和更新。这种情况已经有一段时间了。所以,你真的不应该期望 Expo 的最新版本总是附带最新的 React 或他们使用的最新的任何其他包。

    还有最新的 React 原生版本是否也在使用最新的 React 版本。

    希望你明白我的意思。很多包、很多不同的团队、不断变化的 React 环境、成本、工作量和时间,所有这些都在决定是否升级到 React 的最新版本(目前是 17 版本)中发挥着至关重要的作用。

    但是,给他们一些时间,他们很快就会更新到最新版本。 :)

    【讨论】:

    • 所以基本上expo需要使用一些旧版本的依赖才能工作?
    • 是的。大多数框架和库都是这种情况。
    猜你喜欢
    • 2020-05-30
    • 2018-07-07
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 2014-07-07
    • 1970-01-01
    相关资源
    最近更新 更多