为了在 electron 渲染进程中引入BrowserWindow,使用了这样一个语句:

const BrowserWindow = require("electron").remote.BrowserWindow

运行时会报错:Cannot read properties of undefined (reading 'BrowserWindow')

出错原因

这是由于electron 版本所造成的问题。由于用的是目前的最新版本@v19.0.8, 而remote在electron12中就已经废弃了remote模块,如果需要使用,则应自己安装remote包。

解决方案

步骤1. 在项目根目录下安装@electron/remote包:

npm install @electron/remote --save

步骤2. 在主进程中,设置webPreferences选项:

webPreferences: {n nodeIntegration: true,n contextIsolation: false,n enableRemoteModule: true, // 使用remote模块n},

步骤3. 在主进程中进行初始化:

require("@electron/remote/main").initialize();nrequire("@electron/remote/main").enable(mainWindow.webContents);

步骤4. 在渲染进程中引入BrowservWindow:

const BrowserWindow = require("@electron/remote").BrowserWindow;