如何使用Gatsby和create-react-app添加本机外树平台?

时间:2019-08-01 09:34:46

标签: reactjs react-native gatsby monorepo metro-bundler

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

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

为此,我们将使用react-native out-of-tree platforms,然后使用文件扩展名提供正确的代码,CheckoutScreen.website.js将提供网站的结帐屏幕。

问题是,我们如何设置构建系统来完成此任务?如果我们要使用Gatsby构建网站,并为chrome-extension创建create-react-app。

1 个答案:

答案 0 :(得分:1)

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

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