将本机升级到最新版本

时间:2018-11-19 15:55:58

标签: react-native

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

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

您是否建议使用react-native-git-upgradern-diff

8 个答案:

答案 0 :(得分:5)

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

从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-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版本是否需要特定的依赖性。有些会这样做,而有些则不会。

接下来,图书馆的避风港是真实的,这取决于项目的规模。在我们的案例中,0.44.3版本中正在使用的几个模块现在已被弃用或不再维护,甚至与更高版本的RN的工作方式不同。在开始此过程时,我认为这还不够。这导致几个实例的代码重写只是为了升级! kes!

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

一旦您保持最新和稳定,请考虑定期进行升级,以最大程度地减少我刚刚经历的升级梦the。

答案 1 :(得分:5)

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

  

本机升级

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

OR

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

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

2-之后,查找这些行

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

3-将本机版本更改为要在"dependencies"中升级到的任何版本。

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

答案 2 :(得分:3)

  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. 现在您可以运行升级命令。

    本机升级

答案 3 :(得分:2)

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

此外,最好经常更新本机以保持最新版本并简化升级过程。

  

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

答案 4 :(得分:1)

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

这些注释通常位于变更日志的顶部,我知道最新版本中有一些注释,并为我提供了一些从0.54更新的工作,因此请注意。

答案 5 :(得分:1)

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

因为您可以看到每个版本的确切变化列表。我发现从经react-native run-androidreact-native run-ios正常运行的版本开始后,手动更改配置设置会更简单。

这听起来像是一个可怕的任务,但是用手指或大脑去掉红线并添加绿线并不是一件很困难的事情-至少与诸如Googling之类的方法相比,以在Android / iOS版本中整理出可怕的错误消息系统。

我还认为手动更改配置设置是个好主意,例如将配置设置从0.44更改为0.59,因为您有更多的机会了解每个版本的更改。您会看到这些变化是合理的,并且通常与促进将来的自动化以及增加构建系统的健壮性和避免损坏有关。

此外,RN 0.59中进行了更改,使react-native upgrade变得更好,除了我的附加声明外,整个0.59版本非常庞大,对未来很重要:http://facebook.github.io/react-native/blog/#upgrading-to-059

我什至不打算谈论react-native upgradereact-native-git-upgrade,因为我发现这些通常是噩梦的源头,尤其是当您进入react-native unlinkreact-native link

答案 6 :(得分:0)

答案 7 :(得分:0)

即使使用新的升级帮助器https://react-native-community.github.io/upgrade-helper/,我仍然会遇到很多问题,并且调试它们需要花费很多时间。我发现,在本机核心团队做出重大更改之后,我发现了最好,最可靠的升级方式,例如添加快速刷新或翻转程序,这些更改涉及很多与xcode相关的更改,而这些更改只是从头开始的。

创建新的仓库

npx react-native init newProject

步骤1- 确保新应用正常运行,以便您知道是否存在需要升级的xcode / react本机软件包问题。我知道我遇到了xcode问题,迫使我升级到新的Mac OS版本。

第2步-如果不使用任何自定义Pod,则拉起旧项目xcworkspace或xcodeproj,然后复制诸如签名之类的重要内容以及可能具有的任何自定义构建脚本。我有自定义字体,所以我把它拉下来

第3步-复制应用专用代码,考虑应用文件夹或src以及项目根目录中的所有文件。

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

第5步-重要的是不要仅粘贴在App.js / tsx文件上,而要渲染一个带有文本的简单视图。如果您的应用程序将在此处运行,则意味着您的所有npm / pod均已正确配置。通常,在此步骤中,我会遇到很多错误,要求我将npm / pods升级到新版本,以应对react-native的重大更改

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

第6步-从位于项目根目录中的上一个项目中的.git文件夹复制,这样您就可以保留版本历史记录,或者如果不关心它,也可以创建一个新的git repo。

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