Заставить webpack игнорировать определенный импорт - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь создать настольное приложение, используя ElectronJS и ReactJS .

Процесс рендеринга связан с использованием webpack , так какЯ использую в нем JSX.

Когда я пытаюсь импортировать что-либо из электрона (например, import electron from 'electron'; или const electron = require('electron');) в процессе рендеринга, я получаю эти 2 ошибки, когда я пытаюсь построить его сwebpack (веб-часть) или когда я использую webpack-dev-server и открываю локальный URL-адрес в электронном виде:

https://pastebin.com/WdkCcPzm

Обратите внимание, что я не использую create-react-app,bundle.js - это вывод веб-пакета, App.jsx - это файл, из которого я пытаюсь импортировать электрон, который я хочу импортировать электроном для доступа к переменной ipcRenderer, и что я не пытаюсь импортировать fs из процесса рендеринга.(или из основного процесса в этом отношении).

Решение, которое я нашел, состояло в том, чтобы обойти упаковку webpack, добавив эту строку к моему index.js

eval('window.Electron = require("electron")');

и получая доступ к электрону через переменнуюElectron (заглавная буква E - потому что код признает это какпространство имен, хотя электрон не импортируется, и, таким образом, я все еще получаю завершение кода)

Но это действительно ужасно, и я надеялся, что было другое решение.

1 Ответ

0 голосов
/ 11 июня 2018

Чтобы создать пакеты для процесса рендеринга приложений Electron, веб-пакет предоставляет специальный целевой параметр.

Добавьте это в конфигурацию вашего веб-пакета:

target: 'electron-renderer'

См. Документацию: https://webpack.js.org/configuration/target/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...