Electron remote模块报错:Uncaught TypeError: Cannot read property ‘BrowserWindow‘ of undefined
问题
在使用Electron 14及以上版本的时候,用到remote模块会出现问题
例如使用
const BrowserWindow = require('electron').remote
则就会报错
Uncaught TypeError: Cannot read property 'BrowserWindow' of undefined
解决方案
原因:
这是由于remote模块在Electron12被废弃,在14版本中正式被移除。
另外在Electron10版本中enableRemoteMoudel默认值修改为了false。
下面给出解决方案:
在webPreferences修改enableRemoteMoudel的值
enableRemoteModule:true
在npm中安装remote模块(当然如果速度慢的话可以用cnpm)
npm install --save @electron/remote
在渲染进程中将
const { BrowserWindow } = require('electron').remote
修改为
const { BrowserWindow } = require('@electron/remote')
主进程中添加
const remote = require("@electron/remote/main")
remote.initialize()
然后在loadFile附近添加
remote.enable(mainWin.webContents)