为了在 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;