- electron 10,
remote
默认关闭,需要手动开启
找到项目中的 BrowserWindow
定义部分,手动设置 webPreferences
中的enableRemoteModule
为true
即可,添加部分如下:
win = new BrowserWindow({
webPreferences: {
nodeIntegration: true, // 赋予此窗口页面中的JavaScript访问Node.js环境的能力
// 在electron 10.0.0之后,remote模块默认关闭
// 必须手动设置webPreferences中的enableRemoteModule为true之后才能使用
enableRemoteModule: true, // 打开remote模块
}
});
- electron 12版本已被弃用,在14版本移除
官网:Removed: remote module
The remote module was deprecated in Electron 12, and will be removed in Electron 14. It is replaced by the @electron/remote module.
解决办法:
(1). 先安装@electron/remote包
npm i -D @electron/remote
(2). 主进程js文件中
// 在 new BrowserWindow webPreferences里添加 enableRemoteModule: true
app.on('ready',function(){
require('@electron/remote/main').initialize()
})
//或者是
const createWindow = () => {
// Create the browser window.
mainWindow = new BrowserWindow({
width: 1200,
height: 600,
webPreferences: {
/*
__dirname 字符串指向当前正在执行脚本的路径 (在本例中,它指向你的项目的根文件夹)。
path.join API 将多个路径联结在一起,创建一个跨平台的路径字符串。
*/
preload: path.join(__dirname, 'preload.js'),
enableRemoteModule: true,//必须项,不写无法获取,
}
})
require('@electron/remote/main').initialize()
require("@electron/remote/main").enable(mainWindow.webContents)//非必需
}
(3). 渲染进程中
// 14版本以下使用如下
const { BrowserWindow } = require('@electron/remote') //这样来引入remote
//如果14版本以上还是无效,可用下面的试试
const { BrowserWindow } = require('@electron/remote/main')
console.log(BrowserWindow) //ƒ BrowserWindow() { [native code] }