Bootstrap

Electron remote模块报错:Uncaught TypeError: Cannot read property ‘BrowserWindow‘ of undefined

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)
;