TypeError: window.require не является функцией - PullRequest
2 голосов
/ 11 мая 2019

Я пытаюсь создать электронное приложение и хочу использовать window.require.К сожалению, компилятор говорит: «TypeError: window.require не является функцией».По иронии судьбы требуют работает только в main.js.

Вот код, который я пытаюсь запустить:

const electron = window.require('electron')
const low =  window.require('lowdb')
const FileSync = window.require('lowdb/adapters/FileSync')

Я прочитал в другом посте, чтоу кого-то была такая же проблема, и она была исправлена ​​путем добавления этого кода в файл .html:

    <script type="text/javascript" src="../../../Gehaltseinstellungen_Hinzufügen.js">
        window.nodeRequire = require;
        delete window.require;
        delete window.exports;
        delete window.module;
    </script>

Также автор сказал, что использование «nodeRequire» вместо require решит проблему, но это не так...

Другой вариант, о котором я читал, заключается в том, что NodeIntegration имеет значение false, когда активирован процесс рендеринга, но я не знаю, как активировать Node во время рендеринга.

Спасибо за чтениеи хорошего дня;)

1 Ответ

5 голосов
/ 12 мая 2019

Неясно, какую версию Electron вы используете. Синтаксис, который вы используете, нестандартен.

Первое - если вы используете Electron 5.0, nodeIntegration имеет значение false по умолчанию в BrowserWindows, поэтому вам нужно указать его явно при создании окна:

mainWindow = new BrowserWindow({
  width: 800,
  height: 600,
  webPreferences: {
    nodeIntegration: true
  }
})

Учитывая вышесказанное, приведенный ниже синтаксис работает нормально (т. Е. Ссылка на «окно» не требуется):

const { ipcRenderer, remote } = require('electron');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...