首页 > 解决方案 > 如何使用 Gatsby 和 create-react-app 添加 react-native out-of-tree 平台?

问题描述

我们有一个大型 react-native 应用程序,并希望将此应用程序扩展为网站和 chrome-extension,该网站和 chrome 扩展程序使用我们移动应用程序中的相同 reducer、sagas 和一些组件(使用 react-native-web)。chrome 扩展和网站基本上是移动应用程序的一个子集。

想法是设置构建系统以在单个 repo 中构建这些平台,例如,如果我们运行npm run build-chrome-extension它将 react 扩展构建到一个名为的根文件夹中,该文件夹将与and文件夹/extension位于同一目录中,文件夹也是如此。/ios/android/web

为了实现这一点,我们将使用react-native out-of-tree 平台,然后使用文件扩展名来提供正确的代码,CheckoutScreen.website.js为网站提供结帐屏幕。

问题是,我们如何设置构建系统来实现这一点?如果我们想使用 Gatsby 构建网站,并为 chrome-extension 创建-react-app。

标签: reactjsreact-nativegatsbymonorepometro-bundler

解决方案


不确定回答问题,但您可以使用https://github.com/slorber/gatsby-plugin-react-native-web

它使用 Expo-web webpack 配置(也适用于 CRA 或 Next 或自制 webpack),这意味着您的 web 层将优先解析 .web.js 扩展名。


推荐阅读