我有一个问题,关于升级反应-本机版本。我们有一些选择需要升级,但我不知道不同之处。
1) react-native upgrade
2) react-native-git-upgrade
3) npm install react-native@latest --save然后是react-native run-android或react-native run-ios
我在我的项目中使用了第三种方式,因为我需要在android文件夹中维护我的文件,比如MainActivity.java、MainApplication.java、AndroidManifest等等。
你能描述一下这两种方式的不同吗?
发布于 2019-04-18 22:12:24
TL;DR
首先,你应该查看facebook上的升级的最新选择。
如果这些都不适合你:
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依赖关系也需要升级。ios和android目录下的文件将不处于最新react-native所期望的状态。例如,如果您从react原生0.52升级到0.59,那么您将拥有第2级,而您的react本地库则期望使用第4级。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中是原生的,但是当修改ios和android目录中的文件时,也会带您通过一组引导的CLI提示符。但是,本指南将如何处理新传入文件和现有文件之间的冲突?你可能会有一些变化,你想要保留。
据说较新版本的react-native upgrade允许您执行区分和合并,但我还没有看到。当我运行它时,它打算用一个新的文件来重击我的整个旧文件,并且它向我展示了我的本地文件系统到覆盖旧文件的“新”版本的路径。因此,我使用了自己的区分工具来区分新传入的文件和现有的文件。如果您缺少一个diff工具,我使用p4Merge。因此,在浏览CLI指南时,只需区分现有文件和它提供给您的新文件的路径,然后一个接一个地执行,向文件中添加必要的新行。如果您做了一些更改,请对提示符回答"no“,这样您就可以保留旧文件(以及您刚才所做的修改)。如果你在文件中没有任何值得保存的东西,请回答“是”,让向导简单地覆盖和重击你的旧文件。
当此命令完成后,您的ios和android目录将被更新。例如,gradle将从2级上升到4级。
您可能会碰到我所做的错误,这会导致此命令不断地将您升级到更旧的版本,而不是最新版本。在这种情况下,您需要运行:react-native upgrade --legacy
发布于 2020-10-03 16:17:39
如果它是一个较小的项目,只需使用'npx反应-本机init您的项目名-版本X.XX.Xt‘创建一个新的new本地项目,然后将旧项目的源文件夹复制到新项目中。然后尝试在android或ios中运行它,使用'npx react原生运行-android‘或'npx react原生运行-ios’。如果有任何运行时错误,但没有构建错误,那么相应地更新npm包。注意:这适用于小型项目,因为较大的项目可能包含许多第三方依赖项。:)
发布于 2018-08-11 04:29:45
我尝试了react-native-git-upgrade,然后删除了node_modules,然后npm install,它对我有用!
https://stackoverflow.com/questions/46784089
复制相似问题