electron-vite多窗口案例
案例使用electron-vite加载2个窗口,每个窗口加载不同的url
- 配置electron.vite.config.mjs
- 指向对应的渲染文件,没有就创建
- 主进程创建窗口时指向预加载文件和要加载的url或本地html文件
//electron.vite.config.mjs中的配置
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
import { resolve } from 'path'
export default defineConfig({
main: {
plugins: [externalizeDepsPlugin()]
},
preload: {
plugins: [externalizeDepsPlugin()],
build: {
rollupOptions: {
input: {
/**
* 多窗口需要指向对应的js文件,并且需存在,否则无法加载预加载脚本
* 需要注意的是这里的browser要和主进程中指向预加载的js文件名一致
*/
browser: resolve(__dirname, 'src/preload/browser.js'),
webview: resolve(__dirname, 'src/preload/webview.js')
}
}
}
},
renderer: {
build: {
rollupOptions: {
input: {
/**
* 多窗口需要指向对应的html文件,需要指向对应的html文件,并且需存在。
* 如果没有webview.html文件并在下面声明了,对应窗口会提示framework.xxxxx.js:1 Hydration completed but contains mismatches
* 如果两个html没什么用的,就是占个位,比如窗口加载的是其他网站的url,可以同时指向一个空的html文件
*/
browser: resolve(__dirname, 'src/renderer/browser.html'),
webview: resolve(__dirname, 'src/renderer/webview.html')
}
}
}
}
})
需要注意的是这里的input下的key字段,如browser要和主进程中指向预加载的js文件名一致,否则运行会提示找不到预加载脚本
在src/renderer下创建对应的html指向文件(renderer渲染进程)
- 可以同时指向同一个html文件,这种情况一般适用于加载的是第三方url,比如加载的是B站。
![]()
在src/preload下创建对应的预加载脚本文件

主进程创建窗口和使用预加载脚本

最终运行

electron-vite多窗口案例的更多相关文章
- Electron 无边框窗口最大化最小化关闭功能
Electron 无边框窗口最大化最小化关闭功能 目的 实现无边框窗口,并添加最大化最小化和关闭功能 前提 了解Electron 主进程和渲染进程的通讯 了解 BrowserWindow相关功能 操作 ...
- javascript--鼠标拖拽窗口案例(鼠标按下,在鼠标移动过程中,盒子跟着一起移动,鼠标松开,盒子停止移动)
界面如图所示: 要求:在“信息注册”栏,按下鼠标,然后鼠标在页面移动,在鼠标移动过程中,该窗口跟着鼠标移动,当鼠标松开的时候,窗口停止移动.点击“关闭”,该窗口隐藏. 实现思路: 1.页面结构分析:一 ...
- 从零开始学Electron笔记(一)
前端技术在最近几年迅猛发展,在任何开发领域我们都能看到前端的身影,从PC端到手机端,从APP到小程序,似乎前端已经无所不能,这就要求我们需要不断地去学习来提升自己!前段时间尤大通过直播介绍了一下Vue ...
- 【Electron】Electron开发入门(四):操作PC端文件系统
一.调用PC端默认方式打开本地文件 在main.js里 // 打开系统本地文件或者网页链接 const {shell} = require('electron'); // Open a local f ...
- electron + vue 实践项目
github地址 本地安装环境准备 安装node: * https://nodejs.org/en/download/ 配置webpack: npm install -g webpack(sudo权限 ...
- Node和Electron开发入门(四):操作PC端文件系统
一.调用PC端默认方式打开本地文件 在main.js里 // 打开系统本地文件或者网页链接 const {shell} = require('electron'); // Open a local f ...
- Electron:将前端应用打包成桌面应用
首先戳我下载安装对应版本的node.js. 安装完成后,打开命令行输入node -v以及npm -v查看对应版本.能够正常显示说明安装成功. 写一个最简单的hello world的nodejs应用.n ...
- 使用electron将单页面vue webapp 打包成 PC端应用
在看张鑫旭博客得时候看到了electron这个东西,来了兴趣,就按照上面写的将已经做好得vue项目拿来试了试,出乎意料得顺利 electron简单说下electron,就是把 chrome内核和你的项 ...
- 在Electron中最快速预加载脚本
背景 在Electron打开新窗口的时候,提前加载一段JavaScript脚本,以此内置一些属性或接口给被打开的页面.之所以要以注入方式,而不是页面自己引用,原因是不想麻烦页面自行引用,不想修改旧有的 ...
- 将现有vue项目基于electron打包成桌面应用程序
一.前言 项目本来打算采用B/S架构去做的,浏览器网址方式打开还是让用户不方便: 二.使用electron集成桌面应用 本身项目是使用vue-cli开发的,在使用electron之前,需要将本身的项目 ...
随机推荐
- Docker IPv6 网络环境配置
由于目前Docker 在IPv6网络中运行的相关配置并非默认自动生成的,所以需要大家根据自己的网络环境来具体做一些相应配置,具体如下: 本次操作是在 Ubuntu16/18或者CentOS7 OS上面 ...
- Bitcoin部署到openEuler RISC-V
Bitcoin项目源码是用C++写的,我对C++以及它的编译工具又比较熟悉,这次我尝试了在openEuler RISC-V 24.09上面部署Bitcoin.网上编译Bitcoin源码的很多都是以 ...
- 【Java】NIO
1. Java NIO 简介 Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API. NIO与原来的IO有同样的作用和目的,但是 ...
- vue & font-awesome
vue & font-awesome // 使用npm安装依赖 npm install font-awesome@4.7.0 --save --verbose // 会在包管理文件(packa ...
- 实现Andriod的APP中文名
让程序编译后,就会自动生成中文名,以及启动界面. 1. 2.AndroidManifest.xml的修改. 如果新建project,自动生成,否则要手动 3. 4.ok了.到手机端看结果吧
- Java 的 G1 垃圾回收流程
Java 的 G1 垃圾回收流程 G1(Garbage-First)垃圾收集器 是一种区域化.并发.低延迟的垃圾回收器,适合大堆内存和对暂停时间有严格要求的应用程序.G1 的垃圾回收流程主要包括以下阶 ...
- 备份一个http/https请求,用的比较多的POST json数据
var data = new object[] { new { sn = SN, mac = Mac } }; var jobj = await Task.Run(() => { try { u ...
- wpf 打开输入法、禁用输入法
1 <StackPanel Margin="10"> 2 <TextBox Text="默认"></TextBox> 3 & ...
- redis没有启动会报什么错???
以下是报错信息,应该是根据项目不同,具体的不太一样,但我们能清晰的看到一句 加红,加大,加粗 Caused by: redis.clients.jedis.exceptions.JedisConnec ...
- Java 线程的常用操作方法
目录 线程命名和取得 线程的休眠 线程优先级(priority) 线程命名和取得 如果想要进行线程名称的操作,可以使用Thread类的如下方法: 构造方法:public Thread(Runnable ...
