首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级反应性的最佳方法-本地项目

升级反应性的最佳方法-本地项目
EN

Stack Overflow用户
提问于 2017-10-17 06:49:40
回答 4查看 13K关注 0票数 2

我有一个问题,关于升级反应-本机版本。我们有一些选择需要升级,但我不知道不同之处。

1) react-native upgrade

2) react-native-git-upgrade

3) npm install react-native@latest --save然后是react-native run-androidreact-native run-ios

我在我的项目中使用了第三种方式,因为我需要在android文件夹中维护我的文件,比如MainActivity.java、MainApplication.java、AndroidManifest等等。

你能描述一下这两种方式的不同吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-18 22:12:24

TL;DR

首先,你应该查看facebook上的升级的最新选择

如果这些都不适合你:

  • 在您的package.json中增加react的本机版本
  • 运行npm install (或纱线,如果您正在使用)
  • 运行react-native upgrade或可能运行react-native upgrade --legacy

解释

在这里,我将介绍您询问的每个升级选项。

1) npm install react-native@latest --save然后react-native run-android or react-native run-ios

您可能知道,这里的run-*命令不执行任何类型的升级。

同时,npm install --save <library>@<version>只是命令将库放入package.json中,或者更新现有库的版本。这就是如何升级package.json中任何典型库的版本。如果这就是升级RN的全部内容,那么社区就不会对升级的难度大惊小怪了。还有很多工作要做。

如果这是升级的唯一一步,那么新版本的react本机将被下载到node_modules,但是它应该会失败,并且抱怨很多事情:

  • react依赖关系也需要升级。
  • 您的iosandroid目录下的文件将不处于最新react-native所期望的状态。例如,如果您从react原生0.52升级到0.59,那么您将拥有第2级,而您的react本地库则期望使用第4级。
  • 其他依赖项可能不适用于较新版本的RN。例如,在我进行升级之后,这里有一个来自npm install的警告:

npm WARN react-native-markdown-renderer@3.2.8 requires a peer of react-native@^0.50.4 but none is installed. You must install peer dependencies yourself.

正如您所看到的,我也需要升级本机标记渲染器,因为它需要0.50 RN,但我已经升级到0.59。有些库可能在这种不匹配的状态下工作,但这是您要冒的风险。

2) react-native-git-upgrade

据我所知,RN团队在这个产品上有太多的问题,不希望我们再使用它。我猜这就是为什么它对我们大多数人都不起作用。

3) react-native upgrade

这将更新react的版本--在您的package.json中是原生的,但是当修改iosandroid目录中的文件时,也会带您通过一组引导的CLI提示符。但是,本指南将如何处理新传入文件和现有文件之间的冲突?你可能会有一些变化,你想要保留。

据说较新版本的react-native upgrade允许您执行区分和合并,但我还没有看到。当我运行它时,它打算用一个新的文件来重击我的整个旧文件,并且它向我展示了我的本地文件系统到覆盖旧文件的“新”版本的路径。因此,我使用了自己的区分工具来区分新传入的文件和现有的文件。如果您缺少一个diff工具,我使用p4Merge。因此,在浏览CLI指南时,只需区分现有文件和它提供给您的新文件的路径,然后一个接一个地执行,向文件中添加必要的新行。如果您做了一些更改,请对提示符回答"no“,这样您就可以保留旧文件(以及您刚才所做的修改)。如果你在文件中没有任何值得保存的东西,请回答“是”,让向导简单地覆盖和重击你的旧文件。

当此命令完成后,您的iosandroid目录将被更新。例如,gradle将从2级上升到4级。

您可能会碰到我所做的错误,这会导致此命令不断地将您升级到更旧的版本,而不是最新版本。在这种情况下,您需要运行:react-native upgrade --legacy

票数 5
EN

Stack Overflow用户

发布于 2020-10-03 16:17:39

如果它是一个较小的项目,只需使用'npx反应-本机init您的项目名-版本X.XX.Xt‘创建一个新的new本地项目,然后将旧项目的源文件夹复制到新项目中。然后尝试在android或ios中运行它,使用'npx react原生运行-android‘或'npx react原生运行-ios’。如果有任何运行时错误,但没有构建错误,那么相应地更新npm包。注意:这适用于小型项目,因为较大的项目可能包含许多第三方依赖项。:)

票数 1
EN

Stack Overflow用户

发布于 2018-08-11 04:29:45

我尝试了react-native-git-upgrade,然后删除了node_modules,然后npm install,它对我有用!

https://facebook.github.io/react-native/docs/upgrading

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46784089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档