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 漫画 的图表可视化了此模型:
渲染进行发送事件
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的主要内容,如果未能解决你的问题,请参考以下文章