解决 electron require()报错:Uncaught ReferenceError: require is not defined

问题

渲染进程里无法使用node模块

Uncaught ReferenceError: require is not defined
在这里插入图片描述

渲染进程的代码

let electron = require('electron'); // 引入electron模块
let app = electron.app; // 创建electron引用
let BrowserWindow = electron.BrowserWindow; // 创建窗口引用
let mainWindow = null; // 声明要打开的主窗口
app.on('ready', () => {
  mainWindow = new BrowserWindow({ 
    width: 300, // 设置打开的窗口大小
    height: 300 , 
    // 增加全量使用node.js,因为我们要使用node里的fs模块
    // enableRemoteModule 设置为true,否则不允许在渲染器上使用 remote 
    webPreferences:{ 
        nodeIntegration:true,
        enableRemoteModule: true,
        
    } 
  });
  mainWindow.loadFile('demo2.html'); // 加载哪个页面
  mainWindow.on('closed', () => { // 监听关闭事件,把主窗口设置为null,否则内存会占用越来越多
    mainWindow = null;
  })
})

尝试

我在上面的代码里面已经增加下面的内容,但是还是报错。

webPreferences:{ 
	nodeIntegration:true,
	enableRemoteModule: true,
} 

出现这个问题是因为官方为了安全性,将 electron v12.0.0 的 contextIsolation 的默认值改了。所以今后要在渲染进程里调用 require 的话,还需要加上 contextIsolation: false 。
创建窗口的代码改为:

webPreferences: {
	nodeIntegration: true,
	contextIsolation: false,
	enableRemoteModule: true
}

这样就可以了。

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪野Solye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值