vite+vue3+electron搭建项目

编辑器使用vscode,打开一个空文件夹

第一步 初始化vite项目

初始化vite项目,命令 npm init vite 

在这里插入图片描述

第二步 下载依赖

进入新建的项目,下载依赖,命令 
cd vite-projec 
npm i

在这里插入图片描述

第三步 使用cnpm下载 electron依赖

新建一个终端,确认在项目目录下,运行命令 
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm i electron -D
成功将在package.json里面新增electron依赖

在这里插入图片描述
在这里插入图片描述

第四步 新建main.js文件与入口

1、项目目录下新建main.js文件
2、package.json里面新增配置  "main": "main.js",

在这里插入图片描述
main.js内容如下:

const { app, BrowserWindow } = require ('electron')const createWindow = () => {const win = new BrowserWindow({width: 1000,height: 800})// 如果没有修改vite端口 默认为5173win.loadURL("http://localhost:5173")
}app.whenReady().then(() => {createWindow();app.on('activate', () => {// 在 macOS 系统内, 如果没有已开启的应用窗口// 点击托盘图标时通常会重新创建一个新窗口if (BrowserWindow.getAllWindows().length === 0) createWindow()})
});// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态, 
// 直到用户使用 Cmd + Q 明确退出
app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()})

第五步 安装nodemon启动eletron

Nodemon 是一款非常实用的工具,用来监控你 node.js 源代码的任何变化和自动重启你的服务器。
查看帮助命令 npx nodemon --help
1、安装命令 
cnpm i nodemon -D
2、package.json文件新增启动命令
"start": "nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue"

在这里插入图片描述
在这里插入图片描述
运行 npm start ,如果运行出错,删掉package.json里面 “type”: “module”,
在这里插入图片描述

安装electron-win-state控制窗口大小与打开调试窗口

1、 安装命令 cnpm i electron-win-state -D
2、main.js引入electron-win-state

在这里插入图片描述
main.js引入electron-win-state

const { app, BrowserWindow } = require("electron");
// 引入
const WinState = require('electron-win-state').defaultconst createWindow = () => {// 默认宽高const winState = new WinState({defaultWidth: 1000,defaultHeight: 800}) const win = new BrowserWindow({// 删掉之前的宽高,使用winState来接管...winState.winOptions,webPreferences: {// preload: ''}});win.loadURL("http://localhost:5173");// 打开调试窗口win.webContents.openDevTools()// 控制打开窗口大小为上一次关闭时的大小winState.manage(win)
};app.whenReady().then(() => {createWindow();
});

添加定义预加载的JS

1、项目目录下新建preload文件夹,文件夹下新建index.js,内容自定义
2、在main.js里引入path,将webPreferences.preload值修改为index.js的路径

在这里插入图片描述
在这里插入图片描述

完整main.js内容

const { app, BrowserWindow } = require("electron");
const path = require('path')
const WinState = require('electron-win-state').defaultconst createWindow = () => {const winState = new WinState({defaultWidth: 1000,defaultHeight: 800}) const win = new BrowserWindow({// 删掉之前的大小,使用winState来接管// 自定义窗口状态...winState.winOptions,webPreferences: {// 定义预加载的jspreload: path.resolve(__dirname, './preload/index.js')},show: false});win.loadURL("http://localhost:3000");// 打开调试窗口win.webContents.openDevTools()// 控制打开窗口大小为上一次关闭时的大小winState.manage(win)// 优雅打开窗口 设置上方show: falsewin.on('ready-to-show',() => {win.show()})
};app.whenReady().then(() => {createWindow();app.on('activate', () => {// 在 macOS 系统内, 如果没有已开启的应用窗口// 点击托盘图标时通常会重新创建一个新窗口if (BrowserWindow.getAllWindows().length === 0) createWindow()})
});// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态, 
// 直到用户使用 Cmd + Q 明确退出
app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()})

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05 python数据容器

5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之:list 语法:[元素,元素,....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…

综合实验:期末

实验要求: 一.物理连接 实验分2个组进行,使用思科模拟软件。每个同学模拟两个组。每个组选用一台路由器、一台三层交换机和一台二层交换机。要求按下图拓扑进行连接。如下图:最上端设备为核心交换机,按老师要求配置&a…

实验:BGP配置

1.实验目的: 本实验旨在掌握BGP协议的基本概念和配置方法,以及使用Packet Tracer模拟网络环境进行BGP配置的方法。 2.实验要求: 理解BGP协议的基本概念和原理;掌握BGP协议的配置方法;能够使用Packet Tracer模拟网络…

2019年第八届数学建模国际赛小美赛B题数据中心冷出风口的设计解题全过程文档及程序

2019年第八届数学建模国际赛小美赛 B题 数据中心冷出风口的设计 原题再现: 这是数据中心空调设计面临的一个问题。在一些数据中心,计算机机柜是开放的,在一个房间里排列成三到四排。冷却后的空气通过主管进入房间,并分为三到四个…

华为交换机——配置策略路由(基于IP地址)示例

一、组网需求: 汇聚层Switch做三层转发设备,接入层设备LSW做用户网关,接入层LSW和汇聚层Switch之间路由可达。汇聚层Switch通过两条链路连接到两个核心路由器上,一条是高速链路,网关为10.1.20.1/24;另外一…

【Hive】——DDL(DATABASE)

1 概述 2 创建数据库 create database if not exists test_database comment "this is my first db" with dbproperties (createdByAllen);3 描述数据库信息 describe 可以简写为desc extended 可以展示更多信息 describe database test_database; describe databa…

案例058:基于微信小程序的智能社区服务管理系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

C++类与对象(一)

目录 一,面向过程和面向对象初步认识 二,类的引入 三,类的定义 四,类的访问限定符及封装 五,类的实例化 六,类对象模型 七,this指针 一,面向过程和面向对象初步认识 c语言是面…

超聚变服务器(原华为服务器)网站模拟器

一、超聚变服务器(原华为服务器)网站模拟器: 原来了解服务器可以从他的网站上进行了解,模拟器做的很好了。 https://support.xfusion.com/server-simulators/ 有很多的模拟器,今天主要看下BMC的设置 有很多的在线工具…

软考机考考试第一批经验分享

由于机考的特殊性,考试环境与传统笔试环境有所不同。下面是与考试环境相关的总结: 草稿纸:考场提供足够数量的草稿纸,每位考生都会分发一张白纸作为草稿纸。在草稿纸上需要写上准考证号。如果不够用,可以向监考老师再次…

java springboot+jsoup写一段爬虫脚本 将指定地址的 图片链接 文本 超链接地址存入自己的属性类对象中

首先 还是最基本的 要在 pom.xml 引入依赖 <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.14.1</version> </dependency>然后 我们可以在项目中创建一个属性类 我这里就叫 WebContent了…

自己动手写数据库: select 查询语句对应查询树的构造和执行

首先我们需要给原来代码打个补丁&#xff0c;在SelectScan 结构体初始化时需要传入 UpdateScan 接口对象&#xff0c;但很多时候我们需要传入的是 Scan 对象&#xff0c;因此我们需要做一个转换&#xff0c;也就是当初始化 SelectScan 时&#xff0c;如果传入的是 Scan 对象&am…

JWT令牌的作用和生成

JWT令牌&#xff08;JSON Web Token&#xff09;是一种用于身份验证和授权的安全令牌。它由三部分组成&#xff1a;头部、载荷和签名。 JWT令牌的作用如下&#xff1a; 身份验证&#xff1a;JWT令牌可以验证用户身份。当用户登录后&#xff0c;服务器会生成一个JWT令牌并返回…

小白学开源

第一步 访问程序员交友网站&#xff0c;注册GitHub账号&#xff0c;注册流程请自行了解&#xff0c;如果已有账户请登录 第二步 在搜索框输入你想查找的项目&#xff0c;例如cjson 第三步 选择你感兴趣的那个项目&#xff0c;这里选择排行最前的那个&#xff0c;它的收藏数有…

electron中获取mac地址

electron中获取mac地址 引入为了方便做单点登录&#xff0c;我们往往需要使用某个唯一标识来标记客户端的设备&#xff0c;mac地址就是一个还不错的选择思路 我们可以使用Node.js的内置模块os&#xff0c;调用其中的networkInterfaces方法。该方法会返回一个包含网络接口信息…

Navicat 技术指引 | 适用于 GaussDB 分布式的备份/还原功能

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结…

windows下mysql8修改my.ini设置datadir后无法启动问题

mysql默认数据库文件在安装目录下。创建数据库的时候&#xff0c;并不能指定数据文件存放位置。这就很扯。它只能通过修改mysql.ini来更改数据文件存放目录&#xff0c;而且是一刀切的&#xff0c;没有办法做到数据文件和日志文件分开存放。假如服务器有多个盘&#xff0c;就不…

SpringBoot的Starter自动化配置,自己编写配置maven依赖且使用及短信发送案例

目录 一、Starter机制 1. 是什么 2. 有什么用 3. 应用场景 二、短信发送案例 1. 创建 2. 配置 3. 编写 4. 形成依赖 6. 其他项目的使用 每篇一获 一、Starter机制 1. 是什么 SpringBoot中的starter是一种非常重要的机制(自动化配置)&#xff0c;能够抛弃以前繁杂…

vite(一)——基本了解和依赖预构建

文章目录 一、什么是构建工具&#xff1f;1.为什么使用构建工具&#xff1f;2.构建工具的作用&#xff1f;3.构建工具怎么用&#xff1f; 二、经典面试题&#xff1a;webpack和vite的区别1.编译方式不同2.基础概念不同3.开发效率不同4.扩展性不同5.应用场景不同6.总结&#xff…

详细说说vuex

Vuex 是什么 Vuex有几个属性及作用注意事项vuex 使用举例Vuex3和Vuex4有哪些区别 创建 Store 的方式在组件中使用 Store辅助函数的用法响应式的改进Vuex4 支持多例模式 Vuex 是什么 Vuex是一个专门为Vue.js应用设计的状态管理构架&#xff0c;它统一管理和维护各个Vue组件的可…