electron でどうしても"require is not defined" が消えない!!
electron を使用していると"require is not defined" Errorが出ることがあります。原因はわかっておりGoogleで検索すると沢山記事は出ています。Node.jsのモジュールであるrequireをFrontEndで使えないことが原因です。electron側の仕様でwebPreferences のnodeIntegrationパラメターがdefaultでfalseになっている事が原因で、
mainWindow = new BrowserWindow({
width:1100,
height: 1000,
webPreferences: {
nodeIntegration: true,
},
});
としたらとりあえずはOkですよと沢山の記事に書かれています。(セキュリティーの問題から公式では推奨されていない。)
しかし、僕の場合上記を試しても一向にエラーが消えない!なんでだ!!
electron v11からv12でまた仕様が変わったみたい
色々調べていると、どうもつい最近また仕様が変更になったみたいです。
v11からv12になった時に webPreferencesの 'contextIsolation'パラメターがdefaultでtrueになっており、その事で上の解決法を試しても上記エラーが消えなかったようです。
mainWindow = new BrowserWindow({
width:1100,
height: 1000,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
},
});
これでやっと"require is not defined"が消えましたとさ。。。。
どなたかの参考になれば幸いです。