-
在Electron14之后内置remote模块已经被移除,用
enableRemoteModule
开启remote
也不能用了,解决方法如下: -
使用
@electron/remote
模块替代 -
使用姿势:
-
先
npm
引入
npm install --save @electron/remote
- 在
主进程
中初始化
并开启
模块,其中mainWindow
为主窗口实例,注意使用以下代码的第二条开启模块,网上找了一圈都还停留在使用enableRemoteModule
开启(无效)
require('@electron/remote/main').initialize()
require("@electron/remote/main").enable(mainWindow.webContents)
- 在
渲染进程
中引入就可以开心得编程啦
const {BrowserWindow}=require('@electron/remote')
- 完整代码
主进程:
const { app, BrowserWindow} = require('electron')
app.on('ready', () => {
let mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
}
})
require('@electron/remote/main').initialize()
require("@electron/remote/main").enable(mainWindow.webContents)
mainWindow.loadFile('index.html')
mainWindow.webContents.openDevTools();
})
渲染进程:
const {BrowserWindow}=require('@electron/remote')
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('node-version').innerHTML = process.versions.node
document.getElementById('send').addEventListener('click', () => {
let win = new BrowserWindow({
width: 800,
height: 600,
})
win.loadURL('https://www.baidu.com')
})
})