gpt4 book ai didi

react-native - 升级 react-native 项目的最佳方式

转载 作者:行者123 更新时间:2023-12-02 00:40:51 24 4
gpt4 key购买 nike

我有一个关于升级 react-native 版本的问题。我们有一些升级选择,但我不知道有什么不同。

1) react-native 升级

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 等。

您能描述一下这些方式之间的区别吗?

最佳答案

长话短说

首先,您应该查看 latest options for upgrading来自 Facebook 。

如果这些都不适合你:

  • 在你的 package.json 中增加 react-native 的版本
  • 运行npm install (或者 yarn ,如果你正在使用的话)
  • 运行react-native upgrade或者可能 react-native upgrade --legacy

说明

我在这里解决了您询问的每个升级选项。

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

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

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

如果这是你在升级中采取的唯一步骤,新版本的 react-native 将被下载到 node_modules,但它应该失败并提示很多事情:

  • react依赖也需要升级
  • 您的 ios 下的文件和 android目录将不会处于最新状态 react-native期望。例如,如果您从 react-native 0.52 升级到 0.59,您将拥有 gradle 2,而您的 react-native 库需要 gradle 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.

如您所见,我还需要升级 native-markdown-renderer,因为它需要 RN 0.50,但我已经升级到 0.59。一些库可能会在这种不匹配的状态下工作,但这是您要承担的风险。

2) react-native-git-upgrade

据我了解,RN 团队对该产品有太多问题,不再希望我们使用它。我猜这就是为什么它对我们大多数人根本不起作用。

3) react-native upgrade

这将更新您的 package.json 中的 react-native 版本,但随后还会在修改您的 ios 中的文件时带您完成一组引导式 CLI 提示。和 android目录。但是本指南将如何处理新传入文件与现有文件之间的冲突?您可能希望保留其中的一些更改。

较新版本的 react-native upgrade据说允许您执行差异和合并,但我还没有看到。当我运行它时,它打算用一个新文件破坏我的整个旧文件,它向我显示了本地文件系统上的路径到将覆盖我的旧文件的"new"版本。所以我使用自己的差异工具来区分新传入文件和现有文件。如果你缺少 diff 工具,我使用 p4Merge .因此,当您阅读 CLI 指南时,只需在现有文件和它为您提供的新文件的路径之间进行比较,然后一个一个地执行此操作,向您的文件添加必要的新行。如果您进行了一些更改,请对提示回答“否”,以便您可以保留旧文件(包含刚刚所做的修改)。如果您没有任何值得保留在文件中的内容,请回答"is",然后让指南简单地覆盖和破坏您的旧文件。

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

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

关于react-native - 升级 react-native 项目的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46784089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com