繁体   English   中英

将原生反应升级到最新版本

[英]Upgrading react native to latest version

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

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

你建议使用react-native-git-upgrade还是rn-diff

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

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

你可以运行:

npm install -g react-native-git-upgrade

react-native-git-upgrade

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

首先,升级过程本身(react-native upgrade,现在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以查看您要升级到的 RN 版本是否需要特定的依赖项。 有些人会,而另一些人则不会。

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

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

更新并稳定后,请考虑定期升级以最大程度地减少我刚刚经历的升级噩梦。

只需更改要升级 React Native 版本的项目的路径,然后运行以下命令:

反应原生升级

运行此命令后,您会看到一些问题。 键入 n 放弃对该文件的更改,或者键入 y 如果要修改该文件。 它将自动为您的项目安装最新版本的 react-native。 更多信息请访问: https : //facebook.github.io/react-native/docs/upgrading

或者

您可以通过以下简单步骤升级 React Native 版本:

1-只需转到项目的 package.json 文件

2-在那之后,寻找这些行

"dependencies": {
    "react-native": "0.57.8",
 }

3- 将 react-native 版本更改为您要在"dependencies"升级到的任何版本。

4- 运行npm install和 react 本机版本后,将为您的项目升级。

  1. 您将需要@react-native-community/cli升级到最新版本的 react-native,遗憾的是没有在任何地方提及。

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

  2. 安装 react-native-git-upgrade

    npm install -g react-native-git-upgrade

  3. 现在转到您的项目。

    cd your-react-native-project

  4. 现在您可以运行升级命令。

    反应原生升级

我建议访问此页面: https : //github.com/react-native-community/rn-diff-purge

因为您可以看到每个版本中确切更改的列表。 我发现在通过react-native run-androidreact-native run-ios证明可以正常工作的版本开始后手动更改配置设置更简单。

这听起来像是一项可怕的任务,但对于您的手指或大脑来说,移除红线并添加绿线并不是很难——至少与谷歌搜索等替代方案相比,以整理 Android/iOS 构建系统中的可怕错误消息。

我也相信手动更改配置设置是个好主意,例如从 0.44 更改为 0.59,因为您有更多机会准确了解每个版本中的更改内容。 您会看到这些更改是合理的,并且通常对促进未来的自动化和增加构建系统的健壮性和避免损坏产生影响。

此外,在 RN 0.59 中实施的更改使react-native upgrade更好,除了我的附加声明之外,整个 0.59 版本对未来非常重要且非常重要: http : //facebook.github.io/react-native/博客/#upgrading-to-059

我什至不打算谈论react-native upgradereact-native-git-upgrade因为我发现它们通常是噩梦的来源,特别是如果你进入react-native unlinkreact-native link

我建议使用工具(升级助手),它允许您比较当前的 React Native 版本和最新的 React Native 版本。

此外,经常升级 react-native 以保持最新版本并简化升级过程是很好的。

https://react-native-community.github.io/upgrade-helper/

您可以直接更新到最新版本,我建议使用 react-native-git-upgrade 进行更新,但请务必仔细阅读最新版本的更新发行说明,他们有一些关于您应该做的事情的说明手动执行升级不会。 你可以在这里找到注释: https : //github.com/facebook/react-native/releases

这些注释通常在更新日志的顶部,我知道最新版本有一些,并且最近给了我一些工作要从 0.54 更新,所以请注意。

如果有更改,那么您可以通过复制和粘贴页面中的更改来手动更新它们,或者您可以通过运行 React Native CLI 升级命令来执行此操作:

npx react-native upgrade

如文档中所述: https ://reactnative.dev/docs/upgrading

即使使用了新的升级助手https://react-native-community.github.io/upgrade-helper/,我仍然遇到了一堆问题,调试它们需要很长时间。 我发现的最好和最可靠的升级方式是在 react-native 核心团队做出重大更改后,例如添加快速刷新或涉及许多 xcode 相关更改的翻转器,它只是从头开始。

创建新仓库

npx react-native init newProject

第 1 步 - 确保新应用程序正常运行,以便您知道是否有需要升级的 xcode/react 本机包问题。 我知道我遇到了 xcode 问题,迫使我升级到新的 mac os 版本。

第 2 步 - 如果您不使用任何自定义 pod,则提取旧项目 xcworkspace 或 xcodeproj,只需复制重要内容,例如签名内容以及您拥有的任何自定义构建脚本。 我有自定义字体,所以我把它拉过来

第 3 步 - 复​​制特定于应用程序的代码,考虑应用程序文件夹或 src 以及位于项目根目录中的任何文件。

第 4 步 - 如果您有自定义 pod,请运行 npm install 和 pod install

第 5 步 - 重要的是不要只是粘贴 App.js/tsx 文件,而只是渲染一个带有文本的简单视图。 如果您的应用程序将在此处运行,则意味着您的所有 npm/pods 都已正确配置。 通常我会在这一步遇到一堆错误,需要我将 npm/pods 升级到新版本以处理 react-native 中的重大变化

步骤 5.a - 逐行添加原始 App.js/tsx 文件中的每一行并测试是否有任何中断。 有时在更改之间重置 Metro 缓存并在调试期间删除 ios 和 android 内部的构建文件夹很有用。 在这里使用 chrome 调试器停止异常功能也非常有帮助,这样你就知道问题来自哪里

第 6 步 - 从位于项目根目录的先前项目中复制 .git 文件夹,以便您可以保留版本历史记录,或者如果您不关心这个,则只需创建一个新的 git 存储库。

我已多次使用此方法在几个小时内将 RN 升级到较新版本。 我通常会在做笔记时给自己写一些笔记,以加快下次需要升级的过程。 祝你好运!

npx react-native upgrade

应该为你做所有的工作。

使用 cammand npx react-native 升级

如果您遇到错误,那是由于某些已弃用的包。因此请评论所有页面并在路线中逐步添加您的页面并用新的替换已弃用的包。

并且还使用这个更新助手'https://react-native-community.github.io/upgrade-helper/'

您可以通过 4 个简单步骤升级

  1. npm 安装 -g @react-native-community/CLI

  2. npm install -g react-native-git-升级

  3. cd 你的反应本机项目

  4. 反应本机升级

谢谢:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM