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之前,需要将本身的项目 ...
随机推荐
- [每日算法 - 阿里机试] leetcode19. 删除链表的倒数第 N 个结点 「 详细图释一看就懂!」
入口 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer.https://le ...
- 环境配置-Git和GitLab
Git安装 到官网下载安装包,直接一路next即可. https://git-scm.com/download/win 配置用户名和用户邮箱 $ git config --global user.na ...
- leetcode每日一题:对角线上的质数
题目 2614. 对角线上的质数 给你一个下标从 0 开始的二维整数数组 nums . 返回位于 nums 至少一条 对角线 上的最大 质数 .如果任一对角线上均不存在质数,返回 0 . 注意: 如果 ...
- 学习EXTJS6(9)面向对象的基础框架-1
Ext创造一套精细的对象模型与API,用这套API,可以快速实现对象的定义.创建.继承和扩展:1. 1.创建新类 Ext.define('demo.Demo',{ name: 'usegear', h ...
- shell处理字符串
概念 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号. 单引号声明字符串 单引号里的任何字符都会原样输出, ...
- java基础之继承,抽象类
一.继承 :就是子类继承父类的非私有属性和行为 二.特点 1.子类和父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字 格式:super.父类成员变量名 ...
- ipconfig出现媒体状态为媒体已断开连接问题
1.可能是因为路由器或者是交换机没有DHCP功能,需要手动的给电脑配置IP和掩码
- access 类对象使用
类模块代码如下: Option Explicit '定义按钮对象和onclick 触发内容 Private WithEvents m_Closebtn As Access.CommandButton ...
- Python3批量爬取美女照片并保存到本地(二)
Python3批量爬取美女照片并保存到本地(二) 上一波写错了,很尴尬,就能爬显示的一部分照片,网站有限制,从上波的爬取可以看出来,返回的json中只有一部分图片,其余的需要登录才能下载,我们这次通过 ...
- [设计模式/Java] 设计模式之解释器模式【27】
概述:解释器模式 := Interpreter Pattern ∈ 行为型模式 模式定义 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式 属于行为型模式. 解释 ...