将仅 JS 的 react-native 库升级到 RN 0.60

Posted

技术标签:

【中文标题】将仅 JS 的 react-native 库升级到 RN 0.60【英文标题】:Upgrade JS only react-native library to RN 0.60 【发布时间】:2019-08-20 11:46:51 【问题描述】:

我有一个 react-native 组件库,它只包含 javascript 代码。我没有 ios/android 目录(在库中)。我想让它与 react-native 0.60 兼容。我的库有一些需要链接的依赖项。到目前为止,我只是要求消费者手动链接这些依赖项。

现在要使自动链接(在 RN 0.60 中)起作用,我需要为我的项目创建一个 podspec。但是我的库中实际上没有任何 ios 代码(或目录)。所以我无法创建 podspec。所以在这种情况下,我能看到的唯一方法是要求我的库的消费者手动安装我的库的所有 NPM 依赖项,然后 pod install。有没有其他方法可以在我的库中配置它,让 cocoapods 知道也安装我的库的依赖项?

附:我对 ios 或 cocoapods 不是很熟悉。所以如果这个问题听起来有点傻,请见谅。

【问题讨论】:

【参考方案1】:

您可以尝试运行以下命令生成 ios/android 目录:

react-native upgrade --legacy true

然后您可以在生成目录时运行以下命令来安装iOS依赖项:

cd ios
pod install

【讨论】:

【参考方案2】:

我认为至少在 0.60 版本中这是不可能的,因为此版本中的重大更改,如果您使用的是 0.60 之前的版本并且想要在 0.60 上升级,您还必须面对原生问题和原生库中的重大变化,因为目前大多数库都有两个不同的版本,一个用于 0.60 以上,另一个用于低于 0.60。 当您尝试在 0.60 上升级时,此版本也有原生更改,并且还引入了自动链接,因此一些原生库也可能因此而导致问题。 我的建议是使用升级助手工具并了解每个版本所需的更改。 https://facebook.github.io/react-native/docs/upgrading

【讨论】:

以上是关于将仅 JS 的 react-native 库升级到 RN 0.60的主要内容,如果未能解决你的问题,请参考以下文章

react-native 升级到 0.56 后的问题

Next.js:如何将仅外部客户端的 React 组件动态导入到开发的服务器端渲染应用程序中?

将 react-native 升级到最新版本 0.61.4 后找不到以下原生模块

React-Native无法导入库

如何从 React ^0.14.8 & React-native ^0.24.1 升级到 React 15.0.2 和 React-native 0.26.3

React-native 从 0.61.5 升级到 0.63.2:TypeError: Super expression must be null or a function