electron24整合vite4+vue3创建跨端桌面程序

news/2025/1/16 5:46:00/

基于Electron集成Vite4.x构建桌面端exe应用

electron24-vite4-vue3 运用最新版本electron结合vite4.x创建vue3桌面端应用程序。

// 版本信息
vite: ^4.3.2
vue: ^3.2.47
electron: ^24.4.0
electron-builder: ^23.6.0

创建vite+vue3项目

// 初始化项目
npm create vite@latest electron-vite4-vue3
// or
yarn create vite electron-vite4-vue3
// or
pnpm create vite electron-vite4-vue3// 进入目录
cd electron-vite4-vue3// 安装依赖
yarn install// 运行项目
yarn dev

在这里插入图片描述
yarn dev 运行成功的项目如下:
在这里插入图片描述

安装Electron及依赖插件

// 安装electron
yarn add -D electron// 安装electron-builder 用于打包可安装exe程序和绿色版免安装exe程序
yarn add -D electron-builder// 安装electron-devtools-installer 用于开发调试electron
yarn add -D electron-devtools-installer// 构建electron应用程序的vite插件
yarn add -D vite-plugin-electron

vite-plugin-electron 该插件集成了Vite和Electron,方便在渲染进程中使用Node API或者Electron API功能。
在这里插入图片描述
https://github.com/electron-vite/vite-plugin-electron

新建主进程background.js

const { app, BrowserWindow } = require('electron')
const { join } = require('path')// 屏蔽安全警告
// ectron Security Warning (Insecure Content-Security-Policy)
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true'const createWindow = () => {const win = new BrowserWindow({// 窗口图标icon: join(__dirname, 'resource/shortcut.ico'),width: 800,height: 600,webPreferences: {// contextIsolation: false,// nodeIntegration: true,// preload: path.join(__dirname, 'preload.js')}})// 加载vue url视本地环境而定,如http://localhost:5173// win.loadURL('http://localhost:3000')// development模式if(process.env.VITE_DEV_SERVER_URL) {win.loadURL(process.env.VITE_DEV_SERVER_URL)// 开启调试台win.webContents.openDevTools()}else {win.loadFile(join(__dirname, 'dist/index.html'))}
}app.whenReady().then(() => {createWindow()app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})

在vite.config.js中配置vite-plugin-electron插件入口。

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import electron from 'vite-plugin-electron'// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),electron({// 主进程入口文件entry: 'background.js'})],/*开发服务器选项*/server: {// 端口port: 3000,}
})

注意:electron还不支持 "type": "module" 需要在package.json中去掉type:module
package.json配置

{"name": "electron-vite4-vue3","private": true,"version": "0.0.0","description": "基于Electron24+Vite4.x+Vue3搭建项目框架","author": "andy <282310962@qq.com>","copyright": "MIT License(MIT) ©2023 Andy","main": "background.js","scripts": {"dev": "vite","build": "vite build","preview": "vite preview","electron:serve": "vite --host","electron:build": "vite build && electron-builder"},"dependencies": {"vue": "^3.2.47"},"devDependencies": {"@vitejs/plugin-vue": "^4.1.0","electron": "^24.4.0","electron-builder": "^23.6.0","electron-devtools-installer": "^3.2.0","vite": "^4.3.2","vite-plugin-electron": "^0.11.2"}
}

在这里插入图片描述

electron-builder打包配置

{"productName": "ElectronVite4Vue3","appId": "cc.xiaoyan.electron-vite4-vue3","copyright": "Copyright © 2023-present Andy","compression": "maximum","asar": true, // 打包格式压缩"directories": {"output": "release/${version}"  // 打包输出目录},// 配置extraResources后,electron-builder会在打包时将extraResources中指定的文件复制到打包后应用程序的根目录/resources文件夹下/*"extraResources": [{"from": "./resource","to": "resource"}],*/"nsis": {"oneClick": false,"allowToChangeInstallationDirectory": true,"perMachine": true,"deleteAppDataOnUninstall": true,"createDesktopShortcut": true,"createStartMenuShortcut": true,"shortcutName": "ElectronVite4Vue3"},"win": {"icon": "./resource/shortcut.ico","artifactName": "${productName}-v${version}-${platform}-${arch}-setup.${ext}","target": [{"target": "nsis","arch": ["ia32"]}]},"mac": {"icon": "./resource/shortcut.icns","artifactName": "${productName}-v${version}-${platform}-${arch}-setup.${ext}"},"linux": {"icon": "./resource","artifactName": "${productName}-v${version}-${platform}-${arch}-setup.${ext}"}
}

打包构建 yarn electron:build

在这里插入图片描述

综上,vite4集成electron构建桌面应用就打通好了,希望以上分享对大家有所帮助。

https://blog.csdn.net/yanxinyun1990/article/details/130144212
https://blog.csdn.net/yanxinyun1990/article/details/127562518

在这里插入图片描述


http://www.ppmy.cn/news/106140.html

相关文章

SpringBoot自定义打印横幅

众所周知&#xff0c;springboot项目启动的时候会打印横幅&#xff0c;横幅内容就是spring; 而spring boot提供了一个Banner接口用于处理启动横幅&#xff0c;默认情况下启动会打印如下信息 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( (…

2023 年 PMP 考试难不难?

PMP 真的不难&#xff0c;目前的考试都只有选择题&#xff0c;往后可能会增加别的题型&#xff08;2023,8 月份启用第七版教材&#xff09;&#xff0c; 加入了很多 ACP 敏捷管理的内容&#xff0c;而且 敏捷混合题型占到了 50%。 我从新考纲考完下来&#xff0c;最开始也被折…

Kafka与Flume的对比分析

Kafka与Flume的对比分析 一、Kafka和Flume的架构与工作原理对比1. Kafka的架构与工作原理2. Flume的架构与工作原理3. Kafka和Flume工作原理的异同点 二、Kafka和Flume的性能对比1. 结构化数据和非结构化数据的处理性能对比2. 大规模数据流处理的性能对比 三、Kafka和Flume的可…

31-Openwrt 内核版本替换

有些时候因为一些解不了的bug&#xff0c;在新的内核版本里面已经解决了&#xff0c;这时候我们会想着升级下内核版本&#xff0c;而不是把整个openwrt升级。 将openwrt14.07中的内核版本从3.10.49更换成17.01的4.4.198 1、更改文件include/kernel-version.mk -LINUX_VERSION…

开启客服智能化时代!自动化客服系统优势一次讲透!

在当今快节奏的世界里&#xff0c;企业必须跟上日益增长的客户需求。要做到这一点&#xff0c;一种方法是实施自动化客户服务系统。这些系统简化了客户服务体验&#xff0c;使客户能够更快、更高效地获得所需的响应。 1、全天候服务 自动化客户服务系统全天候可用&#xff0c…

华为NAT全场景应用(包括理论和实验)

目录 14.1 NAT产生背景 14.2 NAT的原理和分类 14.3.1静态NAT 4.3.2动态NAT之NAPT 14.3.3 Easy-IP 14.3.4 NAT Server

linuxOps基础_linux文件打包压缩与解压缩

linux打包压缩概念 默认情况下&#xff0c;Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包&#xff0c;这样才可以进行压缩操作。 打包 1.txt 5MB 2.txt 10MB 3.txt 15MB1.txt 2.txt 3.txt 打包…

API接口对接的流程和注意的事项

API接口对接是将两个应用程序或系统连接并进行数据交换的过程。在进行API接口对接时&#xff0c;需要确保两个系统具有相同的协议和格式&#xff0c;并且数据传输过程中不会出现错误或数据丢失。下面是API接口对接的流程和注意事项&#xff1a; 流程&#xff1a; 1.确认数据格…