首页 > 编程语言 >Electron 上下文隔离和 node 集成

Electron 上下文隔离和 node 集成

时间:2023-05-23 16:25:43浏览次数:76  
标签:node preload false electron js Electron Preload 上下文 Node

Context isolation and Node integration

Scenario	contextIsolation	nodeIntegration	Remarks
A	false	false	Preload is not needed. Node.js is available in the Main but not in the Renderer.
B	false	true	Preload is not needed. Node.js is available in the Main and Renderer.
C	true	false	Preload is needed. Node.js is available in the Main and Preload but not in the Renderer. Default. Recommended.
D	true	true	Preload is needed. Node.js is available in the Main, Preload, and Renderer.

see: https://stackoverflow.com/questions/57807459/how-to-use-preload-js-properly-in-electron

index.ts

//electron
import electron from 'electron';
const app = electron.app;
import path from 'path';
// @ts-ignore
import index from '!!file-loader?name=[name].[ext]!./index.html';

function createWindow() {
    // Create the browser window.
    var mainWindow = new electron.BrowserWindow({
        width: 1000,
        height: 600,
        webPreferences: {
            nodeIntegration: false,
            contextIsolation: true,
            preload: path.join(__dirname, './preload.js'), // dist/preload.js
        },
    })
    mainWindow.loadFile(index);
    console.log('main pid: ', process.pid);
}

app.on('ready', createWindow);

preload.ts

globalThis.addEventListener('DOMContentLoaded', () => {
  console.log('preload pid: ', process.pid);
});

ipc 通信

标签:node,preload,false,electron,js,Electron,Preload,上下文,Node
From: https://www.cnblogs.com/develon/p/17425561.html

相关文章

  • 1、Nodejs学习笔记
    1、fs模块fs模块名称,可以用来操作文件,比如:文件创建,删除,重命名,移动,写入,读取2、来一个fs模块写入的例子//第一个参数文件名称,不存在会创建,第二个参数:写入内容,第三个参数:是写入情况返回值,如果写入成功返回null,如果失败返回错误信息fs.writeFile('','',err=>{})//异步fs.......
  • macOS下由yarn与npm差异引发的Electron镜像地址读取问题
    记录macOS下由yarn与npm差异引发的Electron镜像地址读取问题写在前面:该问题仅仅出现在Linux和macOS上,Windows上不存在该问题!初始背景最近笔者重新拾起了Electron,把最新版Electron的官方文档阅读了一遍。众所周知,Electron作为依赖在安装的时候,其二进制文件下载在国内一直以来都......
  • node 代理访问服务器
    1、背景由于在开发的过程中,我们经常需要访问测试/正式环境,会出现线上正常,本地访问不同2、方案方法一:我们可以通过node作为中间件,解决这一问题。示例如下:varexpress=require('express');const{createProxyMiddleware}=require('http-proxy-middleware');varapp=ex......
  • 前端学习 node 快速入门 系列 —— 事件循环
    事件循环本篇将对以下问题进行讨论:浏览器有事件循环,node也有事件循环,两者有什么异同?node核心特性(事件驱动和非阻塞I/O)和事件循环有什么关系?node中的高并发和高性能和事件循环有关系吗?node不适合什么场景?有人说Node是单线程,有人又说node存在多线程,哪个正确?如果一......
  • node版本管理和更新
    用的Node.js的多版本管理器n来升级的1、sudonpmcacheclean-f//清除nodejs的cache  2、sudonpminstall-gn//使用npm安装n模块  3、npmviewnodeversions//node所有版本  4、sudonlatest//升级到最新版本   sudonstable//升级到稳定版......
  • 自己写一个 NODE/ATTR 的结构
    ##python3.8以上fromtypingimportDict,List,TypeVar,Tuple,Generic,get_argsimportjsonT=TypeVar("T")#数据的默认值defget_dft(tp):ifissubclass(tp,str):return""elifissubclass(tp,int):return0......
  • Node & NPM upgrade
     Node和Npm升级节奏都非常快,因此版本升级是Noder经常回碰到的事情.NPMnpm升级非常方便,直接使用npm就可以1$npmupdate-gnpmnpm卸载方法如下1$sudonpmuninstallnpm-g如果该方法失败,可以先获取npm源代码,然后$sudomakeuninstallNode关于Node的安装之前......
  • 把一个nodejs程序做成传统linux服务
     1:http://howtonode.org/deploying-node-upstart-monit  (  DeployingNode.jsWithUpstartandMonit)  2: https://www.exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/    ( Node.jsandFor......
  • Nodejs(七)-跨域访问
     今天在使用ajax(http://localhost:8080%EF%BC%89%E8%B0%83%E7%94%A8nodejs%E5%86%99%E7%9A%84restfulAPI(http://localhost:3000%EF%BC%89%E6%97%B6%EF%BC%8C%E6%8A%A5%E4%BA%86%E5%A6%82%E4%B8%8B%E4%B8%80%E4%B8%AA%E9%94%99%E8%AF%AF%EF%BC%9AXMLHttpRequestcannotloadhttp:......
  • Fibers and Threads in node.js – what for?
    https://bjouhier.wordpress.com/2012/03/11/fibers-and-threads-in-node-js-what-for/ Ilike node.js,andI’mnottheonlyone,obviously!Ilikeitprimarilyfortwothings:itissimple anditis veryfast.Ialreadysaiditmanytimesbutonemorewon’thu......