将反应本机升级到最新版本

2024-01-29

我有一个在react-native 0.49.3 上运行的应用程序 我想升级到最新版本 v0.57.4。

我应该逐步更新它吗?例如 0.49 -> 0.50 -> 0.51 等 或者我可以直接更新到最新版本吗?

你建议使用react-native-git-upgrade or rn-diff?


我的建议是升级到最新版本。无论如何,都会有足够的依赖性问题,因此您最好只处理一次。

从React Native升级页面 (https://facebook.github.io/react-native/docs/upgrading https://facebook.github.io/react-native/docs/upgrading)

你可以运行:

npm install -g react-native-git-upgrade
npm install -g @react-native-community/cli
react-native-git-upgrade

更新2: 新命令是

npx react-native upgrade

但我相信这最适合从最新版本升级。如果您有旧版本,以下升级过程仍然适用。

更新: 我以前从未遇到过升级问题,但最近加入了一个项目,我们从 React Native 0.44.3 的旧副本升级到较新的版本(首先升级到 0.57.8,然后升级到 0.55.4,然后升级到 0.58。 3 在稳定性方面苦苦挣扎),并发现它并不总是像运行这些命令那么容易。请注意,这可能是一个漫长而乏味的过程,特别是如果您没有定期升级并且升级之间的间隔很长。在这种情况下,距离升级已经过去了 18 个月。

首先,升级过程本身(react-native升级,现在react-native-git-upgrade)本身发生了变化。因此,如果您使用的是一年或更长时间的版本,则可能会存在一些手动差异,您必须经历这些差异。有些是在运行react-native-git-upgrade命令后拼写出来的,有些则不是。我很惊讶 Stack Overflow 上有这么多人经历了看似无辜的升级的相同未记录的循环问题。我没想到会这样。我同意 Facebook 在 6 个月内不添加任何功能并在继续之前简化升级过程。

其次,确保您的 React Native 版本使用正确的依赖项。更新版本的升级工具(react-native-git-upgrade)尝试解决这个问题,但请仔细检查https://github.com/react-native-community/react-native-releases/blob/master/CHANGELOG.md https://github.com/react-native-community/react-native-releases/blob/master/CHANGELOG.md查看您要升级到的 RN 版本是否需要特定依赖项。有些人这样做,而另一些人则不这样做。

接下来,哈迪斯图书馆是真实的,这取决于你的项目有多大。在我们的例子中,0.44.3 版本中使用的几个模块现已被弃用或不再维护,甚至与更高版本的 RN 的工作方式不同。在开始这个过程时我没有充分考虑这一点。这导致了几次代码重写只是为了升级!哎呀!

此外,正如某些版本的 React Native 需要特定版本的依赖项一样,其他模块也需要某些依赖项的特定版本。更糟糕的是,有时这些是各种库的不兼容且冲突的版本。节省一些时间并写一两个用户故事来解释这一点。检查您正在使用的每个模块,看看其 GitHub 页面上是否有任何兼容性声明。一些自述文件会告诉您将其模块的某些版本与 React Native 的某些版本一起使用。其他人不会,您稍后可能会发现有要求。但即使经历了这个过程并预见到了问题,您稍后也会感谢自己。

一旦您达到最新状态且稳定,请考虑定期升级,以最大程度地减少我刚刚经历的升级噩梦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将反应本机升级到最新版本 的相关文章

随机推荐

  • Visual Studio 解决方案中建议的项目数量

    我们正在开始开发新的应用程序 其中包括大约 12 名开发人员在 MS Visual Studio 中使用 C 开发的 30 50 个项目 我正在致力于应用程序模块的组件化 以支持架构并实现并行工作 我们争论 我们应该有多少种解决方案 有人声
  • ORM 和层

    很抱歉这一点在这里到处都是 但我感觉就像一只狗在追我的尾巴 此时我很困惑 我试图找到开发 3 层解决方案 IL BL DL 的最简洁方法 其中 DL 使用 ORM 来抽象对数据库的访问 在我见过的所有地方 人们都使用 LinqToSQL 或
  • Java 游戏引擎 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我最近一直在研究游戏开发 我的第一个编程语言是 Java 在玩过许多用 C 开发的令人惊叹的游戏后 我想知道为什么 Java 在游戏行
  • 如何在Github上托管gem并使用它?

    我已将私有 gem 文件添加到新存储库中here https github com praveenitmec testgem但是当我尝试将它添加到我的 gem 文件中时 gem test gem git gt https github co
  • jQuery 禁用链接

    任何人都知道如何禁用 jquery 中的链接而不使用return false 具体来说 我想要做的是禁用某个项目的链接 使用 jquery 执行单击它会触发一些内容 然后重新启用该链接 以便再次单击它时它会默认工作 谢谢 戴夫 UPDATE
  • 有关 python ImportError 的更多信息,没有命名的模块

    遵循建议here https stackoverflow com questions 338768 python importerror no module named 我的包 或包含我的模块的目录 位于 C Python34 Lib si
  • 如何从 C# 导入和使用非托管 C++ 类?

    我有一个本机 C dll 一些头文件和导入库 有没有办法在 C 中实例化 dll 中定义的对象 我知道的两种方法是 将 C 代码包装到 COM 中 使用 DLLImport 和外部 C 函数 C CLI 是您的朋友 不过 您会遇到一个问题
  • Python 日志记录:传播低于当前记录器级别的消息

    我想记录特定记录器名称 特定级别及更高级别的消息 例如INFO及以上 到特定的日志处理程序 例如文件处理程序 同时仍然将所有日志消息发送到控制台 Python 的版本是 2 7 到目前为止我尝试的是创建两个记录器 根记录器 命名记录器 对于
  • 忽略来自 Google Closure 中一个文件的编译器警告

    我在一个相当大的 Closure 项目中使用外部库 Phonegap 不幸的是 Phonegap 生成了大量编译器警告 所有 危险使用 这足以让我在编译器输出中搜索有关我自己的代码的警告变得非常烦人 有没有一种方法可以仅消除一个文件中的警告
  • 每当使用除法时,C 程序中的计算结果总是为 0

    我使用两个不同的变量来除以来自的变量int and double 当我使用类似以下内容时 这些工作正常 int cost cost 40 cost cost 400 20 2 为此 该方法工作正常 我得到了正确的结果 即4 但是当我使用变量
  • 常见 C++ 优化技术列表 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 仅针对特定服务的拦截器

    我的应用程序中有多个指向不同 API URL 的服务 现在我需要为每个服务设置不同的标头 我现在的问题是关于 Angular 4 中的新拦截器 是否可以为特定服务设置一个拦截器 那么每个服务都有其特定的拦截器 希望你们能明白我的问题 TL
  • 删除填充或强制拟合或删除方形矢量资源中的空白空间以适合矩形按钮?

    我正在尝试调整all inclusive svg 图像 https material io resources icons icon all inclusive到我的矩形按钮 形状本身也是矩形 但矢量资源是正方形 24x24 形状上方和下方
  • 如何将所需的验证器添加到ajax AsyncFileUpload?

    如何将客户端所需的验证器添加到 asyncfileupload 以强制用户在提交页面之前选择文件 您还可以使用 C 或 VB 而不是客户端 Javascript 或 JQuery 函数 在服务器端方法中设置隐藏文本框的文本 protecte
  • python eval 函数中的 \r\n 与 \n

    为什么 eval 函数不能与 r n 一起使用 而可以与 n 一起使用 例如 eval for i in range 5 r n print hello 不起作用 eval for i in range 5 n print hello 有效
  • java中的package语句有什么理由应该放在开头吗?

    我从 Java 编程语言开始 我有一个简单的问题 在 java 包中 如果类是包的一部分 则 package 语句必须位于源代码文件中的第一行 位于可能存在的任何 import 语句之前 包声明应该放在开头有什么有价值的理由吗 有理由吗 当
  • 使用elasticsearch-river-mysql将数据从MySQL数据库流式传输到Elasticsearch

    我想用Elasticsearch 河 mysql https github com scharron elasticsearch river mysql以便不断地将数据从 MySQL 数据库传输到 ElasticSearch 我是 ES 和
  • 检查函数是否属于/哪个工具箱

    我们的工作站上安装了一个相对 丰富 的matlab 我现在需要发送一些代码到 并且我想检查它需要哪些工具箱才能正常工作 最简单的方法是什么 如何找出某个功能属于哪个工具箱 我看到两个问题 我要发送的函数需要哪些工具箱 你需要生成一个依赖性报
  • STATICFILES_DIRS 设置不应包含 STATIC_ROOT 设置

    我正在使用 Django 1 7 将我的网站部署到生产服务器并运行时collectstatic 我收到以下错误消息 django core exceptions ImproperlyConfigured STATICFILES DIRS 设
  • 将反应本机升级到最新版本

    我有一个在react native 0 49 3 上运行的应用程序 我想升级到最新版本 v0 57 4 我应该逐步更新它吗 例如 0 49 gt 0 50 gt 0 51 等 或者我可以直接更新到最新版本吗 你建议使用react nativ