我目前有一个同时针对Android和Electron的react-native-web
应用。
我已经在应用程序中添加了电子快捷方式,并且我在React组件中使用ipcRenderer
来监听加速器并运行特定于React的代码。
问题是,除非我将ipcRenderer
导入到.web.js
文件中,否则在运行Android时会收到以下错误:
Unable to resolve module `fs` from `/Users/.../node_modules/electron/index.js`: Module `fs` does not exist in the Haste module map
引起问题的代码段:
if (isElectron()) {
const { ipcRenderer } = require('electron'); <-- this line
我尝试将导入内容包装在Platform.OS
这样的条件中
if (Platform.OS === 'web') {
const isElectron = require('is-electron');
if (isElectron()) {
const { ipcRenderer } = require('electron');
但是我仍然收到相同的错误。
谢谢:)
答案 0 :(得分:1)
找到了解决我的问题的方法:)
我制作了2个文件
ipcRenderer.js
包含导出的空对象
和ipcRenderer.web.js
包含isElectron()
支票,并且从电子中导出了空值或ipcRenderer