是否可以在 React Native 中同时构建多个应用程序?

Posted

技术标签:

【中文标题】是否可以在 React Native 中同时构建多个应用程序?【英文标题】:Is it possible to do multiple app builds concurrently in React Native? 【发布时间】:2020-05-22 15:56:49 【问题描述】:

我想知道是否有可能在 React Native 中使用单个 repo 构建不同的应用程序。我尝试这样做的原因可能是一个巨大的边缘案例,但它基本上是为了对我正在开发的 RN 模块进行单元测试。

我知道我可以使用 Enzyme 对单个组件进行单元测试,但是我有一些模块是整个框架的一部分,我需要对它们进行端到端的单元测试。所以我的想法是我应该构建应用程序并使用 Appium 在其上运行单元测试。但是如果有多个单元测试呢?我想我们需要构建多个单独的应用程序?但是只有一个 index.js 文件。

我读到我可以在 android 中设置一些应用目标和方案 (ios) 以及等效的东西。但是我将如何在 RN 方面处理这个问题?我在哪里可以指定哪个 .js 文件是每个目标的入口点? RN 如何处理构建不同的目标?

https://www.dev6.com/frameworks/building-multiple-apps-from-one-react-native-project/ 阅读这篇文章,了解如何设置多个方案并使用这些方案设置可能影响应用程序控制流的环境变量。但是,这意味着我必须连续运行单元测试,用不同的环境一遍又一遍地加载同一个应用程序(我猜这不是世界末日)。

我在想,如果我有多个index.js 文件,每个单元测试一个,我也许可以设置一些单独的应用程序目标/方案并使用它们,但我想我必须弄清楚如何构建和同时运行它们以进行并发单元测试。我认为react-native run-iosrun-android 命令只是构建了一个应用程序,所以我不确定如何将其融入我的单元测试工作流程。

非常欢迎对此策略或其他可能策略的任何想法!谢谢:)

【问题讨论】:

【参考方案1】:

不是一个具体的答案,但说到方法,您将需要多个原生 iOS/android 应用程序目标、多个应用程序/捆绑 ID 才能同时运行多个应用程序实例,下面的参考资料可能会有所帮助 -

    创建不同的应用目标 - https://gist.github.com/jacks205/45b2721bf2a2b912b1c130aef2572820 为每个目标提供唯一的应用程序/捆绑标识符 - Get Bundle ID from a different target 为反应原生项目使用多个目标 - https://medium.com/@jacks205/adding-multiple-target-pipelines-for-react-native-apps-and-fastlane-circleci-deployment-pt-1-ae9590ae52f2

【讨论】:

以上是关于是否可以在 React Native 中同时构建多个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 Material UI 库与 React Native 一起使用?

在 React Native 中构建图像卡

react native - 我是否应该用 react-native start 命令来运行服务器,以便用户可以使用应用程序?

如何从 iOS 中删除 react-native-firebase,同时将其保留在 Android 中?

react js web代码可以用于使用react native构建移动应用程序吗?

将 React Native 与 Buildfire 一起使用