reactjs - 如何使用 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。
解决方案
不确定回答问题,但您可以使用https://github.com/slorber/gatsby-plugin-react-native-web
它使用 Expo-web webpack 配置(也适用于 CRA 或 Next 或自制 webpack),这意味着您的 web 层将优先解析 .web.js 扩展名。
推荐阅读
- java - foreachRDD 不执行
- angular-cli - 使用角度库 E/launcher 进行量角器 e2e 测试 - 错误:ReferenceError:未定义窗口
- php - Laravel 5.7 - 上传到公共文件夹
- java - 谷歌云计算虚拟机或云平台是否有可能在第一次之后阻止连接?
- drupal - 如何在 Drupal 6 中添加访问自定义 tpl 页面的用户权限?
- xquery - XQuery:返回后在循环中更新变量值
- r - 如何在 OpenCPU 中隐藏你的库代码
- windows - 在 Windows 上休息:有什么理由反对使用外部 openssl?
- angular - 角度路由器解析器 - 重新加载时从父级获取参数
- php - 将fastcgi_pass从网络套接字切换到unix套接字后,Laravel“由于不活动而导致页面过期”