#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, чтобы сообщить основному процессу, когда пользователь вошел в систему?