electron模板【lectron-react-boilerplate】多窗口配置【HtmlWebpackPlugin】多页面配置

news2024/11/23 12:28:32

如果您正在使用electron-react-boilerplate进行快速的Electron应用程序开发,您可能会遇到想要在桌面应用程序中拥有多个原生窗口的情况。

MacOS窗口图像

MacOS窗口图像由OpenClipart-Vectors提供,来源Pixabay。

开始之前需要提及的事情!

  1. Electron有一个主进程和渲染进程的模式。可以有多个渲染进程,但只有一个主进程。
  2. 对于Electron IPC(进程间通信),我们需要一个预加载器。我们可以通过启用节点集成来实现,但这是一个安全隐患。
  3. webpack插件HtmlWebpackPlugin为每个入口(块)创建一个html文件。

如果您不想了解如何操作的细节,您可以直接克隆这个仓库并从中学习https://github.com/alielmajdaoui/electron-react-boilerplate-multiple-windows

开发环境设置

./src文件夹内,创建两个文件夹,settings-main用于主进程文件,settings-renderer用于渲染进程文件。

打开文件.erb/configs/webpack.paths.ts,在以下行之后

const srcRendererPath = path.join(srcPath, 'renderer');

添加

const srcSettingsMainPath = path.join(srcPath, 'settings-main');
const srcSettingsRendererPath = path.join(srcPath, 'settings-renderer');

在同一文件中,导出新变量。

文件.erb/configs/webpack.paths.ts应该看起来像

./erb/configs/webpack.paths.ts

创建设置窗口渲染进程

settings-renderer文件夹内,创建一个新文件index.ejs

./src/settings-renderer/index.ejs

在同一文件夹settings-renderer内,创建一个新文件index.tsx

./src/settings-renderer/index.tsx

将新的渲染入口添加到Webpack

打开.erb/configs/webpack.config.renderer.dev.ts,并找到以下代码块

  entry: [
    `web

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1827152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 桥接模式(Bridge Pattern)是设计模式中的一种结构型设计模式,桥接模式的核心思想是将抽象与实现解耦

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式的核心思想是将抽象与实现解耦,使得它们可以独立扩展。 在桥接模式中,通常包含以下四个…

1)Java项目笔记搭建系统梳理相关知识

目录 前言项目结构Java部分Spring整合部分SpringBoot整合部分 模块说明规划 小结javarabbitmqmybatisspring最后推荐几本工具书 前言 工作有年头了,学到了很多技术,收获了很多。但是对与工作相关的专业技能知识的掌握杂而乱,不够全面系统。因…

博客没人看啊?我分析是这些原因

1.封面 主题封面还是个性化封面?主题封面对系列化很友好,如下图左: 在目录中什么主题一目了然,个性化封面在目录中就略显杂乱。但是通过观察CSDN主页发现热榜文章清一色个性化封面。如果使文字封面就会显得很无聊。 所以从提高浏…

数据库开发——并发控制(第十一章)

文章目录 前言并发执行例题一、封锁二、封锁协议三、可串行调度四、总结 学习目标:重点为并发控制的基本概念及几个基本协议 前言 数据库管理系统必须提供并发控制机制,保证事务的隔离性和一致性 并发执行例题 一、封锁 排他锁称为写锁,共…

实现一个渐进优化的 Linux cp 命令

1&#xff0c;第1版 copy 先写个轮廓 selfcp.c &#xff1a; #include <stdio.h>int main() {FILE *source, *destination;char ch;source fopen("H222.txt", "r");if (source NULL) {printf("Error opening source file!\n");retur…

浅谈网络通信(3)

文章目录 一、TCP[!]1.1、TCP协议报文格式1.2、TCP十大机制1.2.1、确认应答机制1.2.2、超时重传机制1.2.3、连接管理机制1.2.3.1、三次握手[其流程至关重要&#xff0c;面试必考]1.2.3.2.1、那为啥要建立连接&#xff1f;&#xff1f;建立连接的意义是啥&#xff1f;&#xff1…

c++编程(17)——deque的模拟实现(1)迭代器篇

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 博主模拟STL中的容器时&#xff0c;参考的是SGI版本的STL&#xff0c;如果你对STL的源码感兴趣&#xff0c;请私聊博主。 文章目录 deque的底层原理deque的迭代器deque迭代器的操作迭代器的随机访问操作 deque的底层…

类别不平衡

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、介绍1、过采样2、欠采样 二、过采样1、SMOTE&#xff08;常用&#xff09;1、算法流程2、算法实现3、参数介绍 2、ADASYN&#xff08;不常用&#xff09;1、算法流程…

车票信息的请求与显示

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 1 发送与分析车票信息的查询请求 得到了获取车票信息的网络请求地址&#xff0c;然后又分析出请求地址的必要参数以及车站名称转换的文件&#xff…

程序猿大战Python——函数——嵌套调用与变量作用域

嵌套调用及执行流程 目标&#xff1a;了解函数的嵌套调用。 函数的嵌套调用指的是&#xff1a;在一个函数中&#xff0c;调用了另一个函数。 嵌套调用语法&#xff1a; def 函数1():代码... ​ def 函数2():代码# 调用函数1函数1()... 说明&#xff1a; 在函数2中&#xff0c…

8个宝藏APP,个个都牛逼哈拉!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 目前win7已经逐渐淡出人们的视野&#xff0c;大部分人都开始使用win10&#xff0c;在日常工作和使用中&#xff0c;创客们下载神奇的软件能大幅提…

怎样快速清理电脑里的所有软件 怎么删除干净电脑软件

苹果电脑内的软件来源主要有两个&#xff0c;一是系统预装&#xff0c;二是用户自行下载。但并不是所有应用程序都是高频使用状态&#xff0c;甚至好多是从未打开过的“屏幕装饰”。小编今日独家攻略&#xff0c;内存告急如何快速清理电脑里的所有软件&#xff0c;怎么删除干净…

线程池ThreadPoolExecutor使用指南

线程池ThreadPoolExecutor使用指南 &#x1f9d0;使用线程池的好处是什么&#xff1f; 统一管理&#xff0c;减少资源获取创建的开销&#xff0c;提高利用率。 &#x1f527;线程池的参数 ​ThreadPoolExecutor​ 3 个最重要的参数&#xff1a; ​corePoolSize​ : 任务队列…

问:IP写作如何商业化?

这个问题也是很多朋友&#xff0c;或者新手小白问的最多的问题&#xff0c; 毕竟我们做副业都是为了挣钱嘛&#xff0c; 那么&#xff0c;回到问题&#xff0c;IP写作如何商业化&#xff1f; 这个问题其实对于我现在要日更的目标来说为时尚早&#xff0c;不过也可以先了解一下。…

Javaweb登录校验

登录校验 JWT令牌的相关操作需要添加相关依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>一、摘要 场景&#xff1a;当我们想要访问一个网站时&am…

如何用AI提高产品经理的工作效率

最近我跟几个产品经理聊天&#xff0c;发现有些人居然还没有使用过ChatGPT、MidJourney、NotionAI 等AI工具。 产品经理有个重要的素质是好奇心&#xff0c;好奇心能够帮助产品经理发现新机会、了解用户需求、学习新知识和探索竞争对手&#xff0c;从而更好地完成产品开发和管…

mediamtx流媒体服务器测试

MediaMTX简介 在web页面中直接播放rtsp视频流&#xff0c;重点推荐&#xff1a;mediamtx&#xff0c;不仅仅是rtsp-CSDN博客 mediamtx github MediaMTX(以前的rtsp-simple-server)是一个现成的和零依赖的实时媒体服务器和媒体代理&#xff0c;允许发布&#xff0c;读取&…

android13 应用冷启动

1 概述 launcher 通过binder到systemserver中atms中发送startActivity请求 startProcess向zygote发送启动新进程请求 zygote收到请求&#xff0c;fork新进程并调用ActivityThread的main初始化 新进程启动&#xff0c;发送attachApplication给ams&#xff0c;告诉他新进程启动…

C++ 44 之 指针运算符的重载

#include <iostream> #include <string> using namespace std;class Students04{ public:int m_age;Students04(int age){this->m_age age;}void showAge(){cout << "年龄是&#xff1a; " << this->m_age << endl;}~Students0…

155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题

设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…