1. ホーム
  2. javascript

[解決済み] electron 5.0.0 "Uncaught ReferenceError: require is not defined".

2022-02-12 08:13:05

質問

当初はelectron安定版(4.x.x)を使っていて、その時は require をブラウザとレンダラーの両方の処理で使用しました。新しいバージョンのノードが必要だったため、electron beta (5.0.0) にアップグレードしたところ、レンダラープロセスでこのエラーメッセージに遭遇しました。 Uncaught ReferenceError: require is not defined .

ググったり、electronのドキュメントを見たりすると、このエラーの原因が webPreferences.nodeIntegration を初期化する際に false に設定します。 BrowserWindow ;例: new BrowserWindow({width, height, webPreferences: {nodeIntegration: false}}); . しかし、私はこれを行っていなかったので、何か別の問題があるに違いないと思い、解決策を探し続けました。

解決方法は?

Electronバージョン12以上の場合

const electron = require("electron");

const { app, BrowserWindow } = electron;

app.on("ready", () => {
  const mainWindow = new BrowserWindow({
    width: 1000,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      enableRemoteModule: true,
    },
  });
  mainWindow.loadURL(`file://${__dirname}/index.html`);
});