开发桌面端应用,使用electron-vite构建项目真的是一绝!

技术栈:electron v28.2.1、react v18.2.0
构建工具:electron-vite v2.0.0
项目打包:electron-builder v24.9.1

本教程为项目工程的搭建,相关技术的知识请各自学习。

Vite在当下绝对是非常卓越的前端构建工具,很多项目将其与Electron进行结合,开发桌面应用。但是如果单独配置vite进行桌面应用的开发,配置相当繁琐、复杂,甚至需要安装第三方库来解决一些常见问题,例如需安装nodemon来使electron应用热更新;当应用打包时,需要编写配置文件,指定打包文件的输出路径;当需要与Vue、React、Svelte结合开发时,也需要进行不同的配置处理等等。甚至是应用安全方面,electron使用js构建桌面应用,这很容易对应用程序进行解包、修改逻辑破解商业化限制、重新打包,再重新分发破解版,无法保护应用的安全。

为解决以上问题,electron-vite诞生了,为 Electron 提供更快、更精简的开发体验。
三种构建方式:

  1. 命令行创建yarn create @quick-start/electron,一步一步填写项目名称、选择模版等
  2. 命令行创建并指定模板yarn create @quick-start/electron electron-app --template vue
    模板可选以下内容:

在这里插入图片描述

  1. 在已有项目中添加electron-vite
    前两种方式是比较简单的,主要讲解一下第三种方式,在已有的项目中添加。以react+ts项目为例:

第一步:安装electron-vite

yarn add --dev electron-vite

第二步:在项目根目录,创建 electron.vite.config.ts

当以命令行方式运行 electron-vite 时,electron-vite 将会自动尝试解析项目根目录下名为 electron.vite.config.js 的配置文件。
此文件的写法与vite.config.ts类似,你可以将原配置代码移植到electron.vite配置文件中,其完全兼容vite.config.ts。
基本结构:

import { defineConfig, externalizeDepsPlugin } from "electron-vite";
import react from "@vitejs/plugin-react";
import { resolve } from "path";export default defineConfig({main: {plugins: [externalizeDepsPlugin()]},preload: {plugins: [externalizeDepsPlugin()]},renderer: {resolve: {alias: {'@': resolve('src/renderer/src')}},plugins: [react()]}
})

第三步:修改项目目录结构

将你的项目代码移植到src/renderer目录下。

├──src/
│  ├──main // 主进程下面包含index.ts 创建窗口等内容
│  ├──preload // 预加载脚本
│  └──renderer  // 渲染进程,将你的原项目代码移植到此目录下
│	  ├──index.html
│	  └──src/
├──electron.vite.config.ts
└──package.json

electron-vite 内置了很多配置,如outDir、target、entry、formats、external等,以此进行智能解析和配置检查。所以只要保证目录结构的正确,你无需多进行复杂的配置,当然你也可以不按照此目录结构,自己进行配置。

第四步:编写启动脚本及指定入口文件

当使用 electron-vite 打包代码时,Electron 应用程序的入口点应更改为输出目录中的主进程入口文件。默认的输出目录 outDir 为 out。

"main": "./out/main/index.js",
"scripts": {"dev": "electron-vite dev --watch","build": "electron-vite build","build:win": "yarn build && electron-builder --win","build:mac": "electron-vite build && electron-builder --mac","build:linux": "electron-vite build && electron-builder --linux"
},

如需打包,请安装electron-builder依赖。

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

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

相关文章

YOLOv5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测

💡💡💡本文独家改进:一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv5网络中的nn.Upsample 💡💡💡在多个数据集下验证能够涨点,尤其在小目标检测领域涨点显著。 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/cate…

TryHackMe-File Inclusion练习

本文相关的TryHackMe实验房间链接:TryHackMe | Why Subscribe 路径遍历(目录遍历) LocationDescription/etc/issue包含要在登录提示之前打印的消息或系统标识。/etc/profile控制系统范围的默认变量,例如导出(Export)变量、文件创…

虚拟机安装archlinux

1、创建虚拟机 2、安装系统4、为了方便,修改密码并使用dos窗口连接 5、磁盘分区 由于新建虚拟机时是8G,所以只建一个分区就行 6、格式化分区并挂载 7、更新镜像 rootarchiso ~ # pacman -Sy 8、 pacstrap -i /mnt base base-devel linux linux-f…

详解WebRTC rtc::Thread实现

rtc::Thread介绍 rtc::Thread类不仅仅实现了线程这个执行器(比如posix底层调用pthread相关接口创建线程,管理线程等),还包括消息队列(message_queue)的实现,rtc::Thread启动后就作为一个永不停止的event l…

【C++游戏开发-01】推箱子

C游戏开发 文章目录 C游戏开发[TOC](文章目录) 前言一、逻辑分析1.1地图实现1.2人物的移动1.2.1小人移动1.2.2其他移动 1.3墙壁的碰撞1.4箱子的推动1.4.1什么时候推箱子1.4.2什么情况可以推箱子 1.5胜利的判断1.6卡关的处理1.7关卡的切换 二、DEMO代码2.1游戏框架2.2各功能函数…

刨析数据结构(二)

🌈个人主页:小田爱学编程 🔥 系列专栏:数据结构————"带你无脑刨析" 🏆🏆关注博主,随时获取更多关于数据结构的优质内容!🏆🏆 😀欢迎…

【音视频 ffmpeg 】直播推流QT框架搭建

简介: 【音视频 ffmpeg 】直播推流QT框架搭建 3个线程 一个做视频解码一个做音频解码一个做复用推流 视频解码线程展示 #include "videodecodethread.h" VideodecodeThread::VideodecodeThread(QObject *parent):QThread(parent) {avdevice_register_a…

【前端web入门第三天】01 css定义和引入方式 四种标签选择器

文章目录: 1.css 定义 2.css引入方式 3.选择器 3.1 标签选择器 3.2 类选择器 3.3 id选择器 3.4 通配符选择器 4. 画盒子 1.css 定义 层叠样式表(Cascading Style Sheets,缩写为CSS),是一种样式表语言,用来描述HTML文档的呈现(美…

一键部署幻兽帕鲁服务器免费一年方案

一、背景介绍 简单讲一下历程,幻兽帕鲁从在1月19日上线,24小时内在线人数峰值便突破200万,作为2024年第一款现象级游戏,《幻兽帕鲁》上线后,由于人数太多,频现服务器过载导致游戏卡顿掉线的情况。为了能够…

前端入门第三天

目录 一、CSS定义 二、CSS引入方式 三、基础选择器 1.标签选择器 2.类选择器 3.id选择器 4.通配符选择器 5.画盒子 四、文字控制属性 1.字体大小 2.字体粗细 3.字体倾斜 4.行高 1.行高-垂直居中 5.字体族 6.font复合属性 7.文本缩进 8.文本对齐方式 1.水平对…

C#,打印漂亮的贝尔三角形(Bell Triangle)的源程序

以贝尔数为基础,参考杨辉三角形,也可以生成贝尔三角形(Bell triangle),也称为艾特肯阵列(Aitkens Array),皮埃斯三角形(Peirce Triangle)。 贝尔三角形的构造…

Pycharm Community 配置调试Behave

前提:python小白,临时搞python项目,公司限制使用Pycharm版本,故只能使用社区版,然而官方有明确说明:只有Professional版支持Behave。故研究了半天才整清楚社区版调试Behave的设置 没有进行下面的步骤之前&…