Условный импорт электрона в приложение - PullRequest
2 голосов
/ 10 марта 2020

В настоящее время у меня есть приложение react-native-web, предназначенное как для Android, так и для Electron.

Я добавил электронные ярлыки в приложение и использую ipcRenderer в компонентах реагирования для прослушивания Ускорители и запустить код реакции-* c.

Проблема в том, что, если я не импортирую 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');

Однако я все еще получаю та же ошибка.

Спасибо:)

1 Ответ

1 голос
/ 10 марта 2020

Нашел решение моей проблемы:)

Я сделал 2 файла

ipcRenderer.js, содержащих экспорт нулевого объекта

и ipcRenderer.web.js, который содержал isElectron() проверьте и экспортируйте либо ноль, либо ipcRenderer из электрона

...