在Electron开发中不能使用remote模块怎么办

为了在 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: {
    nodeIntegration: true,
    contextIsolation: false,
    enableRemoteModule: true, // 使用remote模块
}, 

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

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

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

const BrowserWindow = require("@electron/remote").BrowserWindow;
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章