require() не определен в electron

#javascript #node.js #electron

#javascript #node.js #electron

Вопрос:

Я использую electron с Mineflayer. Я пытаюсь отправить событие IPC основному процессу, чтобы запустить там Mineflayer, но когда я использую const { remote, ipcRenderer } = require('electron') , я получаю сообщение об ошибке

 Uncaught ReferenceError: require is not defined
at choose-server.js:1
  

По какой-то причине это происходит только на второй странице. Первая страница — это страница входа в систему, которую я использую const { remote, ipcRenderer } = require("electron"); , которая не выдает ошибок. Я меняю страницу, используя

 window.location = `file://${__dirname}/choose-server.html`;
  

Я думаю, что способ изменения страницы как-то связан с ошибкой. Я попытался переключиться на import вместо require(), но это ничем не помогло. У меня для nodeIntegration установлено значение true. Хотя я импортирую свои скрипты <script src="choose-server.js"></script> , но я пробовал с require(); . Я получаю ошибку только при нажатии кнопки join. Кнопка имеет тот же прослушиватель событий, что и мои кнопки минимизации, максимизации и закрытия, которые все работают отлично. Единственное отличие заключается в том, что прослушиватель событий кнопки объединения использует в нем ipcRenderer, в то время как другие используют только remote.GetCurrentWindow.

Комментарии:

1. Ваш основной процесс должен отслеживать, успешно ли ваш пользователь вошел в систему. Если они это сделали, то используйте Browser.loadFile для загрузки следующей страницы. На вашем месте я бы не стал внедрять логику перехода страниц в процесс рендеринга. Я бы организовал это только из основного процесса.

2. Итак, должен ли я использовать ipcRenderer, чтобы сообщить основному процессу, когда пользователь вошел в систему?