Electron 渲染进程中报错require is not defined

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Electron 渲染进程中报错require is not defined相关的知识,希望对你有一定的参考价值。

参考技术A 解决方法在new BrowserWindow时添加配置

原因: electron 5.0 后 nodeIntegration 默认为 false··

为了安全性,官方将 electron v12.0.0 的 contextIsolation 的默认值改成了true。所以electron v12.0.0以后要在渲染进程里调用 require 的话,还需要加上 contextIsolation: false 。

Electron进程通信


多进程模型

为了解决这个问题,Chrome 团队决定让每个标签页在自己的进程中渲染, 从而限制了一个网页上的有误或恶意代码可能导致的对整个应用程序造成的伤害。 然后用单个浏览器进程控制这些標籤頁进程,以及整个应用程序的生命周期。 下方来自 Chrome 漫画 的图表可视化了此模型:

Electron进程通信_数据

渲染进行发送事件

const 
clipboard,
shell,
ipcRenderer
=
window.require(electron)

// 渲染进程给主进程发送消息,执行主进程里面的方法
// 参数一是消息名称,参数二是传递的数据
ipcRenderer.send(sendMsg, this is Renderer msg)

主进程处理事件

import  app, protocol, BrowserWindow, ipcMain, Notification  from electron
// 接受渲染进程的通知
ipcMain.on(sendMsg, (e, data) =>
console.log(主进程:)
console.log(事件对象:)
console.log(e)
console.log(从渲染进程收到的数据: + data)
console.log(`Notification: $Notification.isSupported()`)
if (Notification.isSupported())
new Notification(
title: Basic Notification,
body: Notification from the Main process
).show()

)


以上是关于Electron 渲染进程中报错require is not defined的主要内容,如果未能解决你的问题,请参考以下文章

Electron 渲染进程主进程通信 02

electron 中渲染进程报错可能原因

Electron 主进程与渲染进程通信

07.electron-(渲染进程和主进程)通信

Electron - 解决渲染器进程中的电子模块问题

Electron进程通信