尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Electron+Vite:实现electron + vue3 + ts + pinia + vite高效跨平台开发指南 - 指南

Electron+Vite:实现electron + vue3 + ts + pinia + vite高效跨平台开发指南 - 指南
📅 发布时间:2026/6/19 10:20:48

目标:electron + vue3 + ts + pinia + vite

简介

electron-vite 是一个新型构建工具,旨在为Electron提供更快、更精简的开发体验。它主要由五部分组成:

  • 一套构建指令,它使用Vite打包你的代码,并且它能够处理 Electron 的独特环境,包括Node.js和浏览器环境。

  • 集中配置主进程、渲染器和预加载脚本的 Vite 配置,并针对 Electron 的独特环境进行预配置。

  • 为渲染器提供快速模块热替换(HMR)支持,为主进程和预加载脚本提供热重载支持,极大地提高了开发效率。

  • 优化 Electron 主进程资源处理。

  • 使用 V8 字节码保护源代码。

electron-vite 快速、简单且功能强大,旨在开箱即用。

安装

前提条件

electron-vite 需要 Node.js 版本 20.19+, 22.12+ 和 Vite 版本 5.0+

npm i electron-vite -D

命令行界面

在安装了 electron-vite 的项目中,你可以直接使用 npx electron-vite 运行,也可以在 package.json 文件中添加 npm scripts:

{"scripts": {"start": "electron-vite preview", // 开启 Electron 程序预览生产构建"dev": "electron-vite dev", // 开启开发服务和 Electron 程序"prebuild": "electron-vite build" // 为生产构建代码}
}

你还可以指定其他 CLI 选项,例如 --outDir。 有关 CLI 选项的完整列表,可以在你的项目中运行 npx electron-vite -h。

配置 electron-vite

当以命令行方式运行 electron-vite 时,electron-vite 将会自动尝试解析项目根目录下名为 electron.vite.config.js 的配置文件。最基本的配置文件如下所示:

// electron.vite.config.js
export default {main: {// vite config options},preload: {// vite config options},renderer: {// vite config options}
}

Electron 入口

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

{"name": "electron-app","version": "1.0.0","main": "./out/main/index.js"
}

Electron 的工作目录将是输出目录,而不是你的源代码目录。因此在打包 Electron 应用程序时可以将源代码排除。

搭建第一个 electron-vite 项目

在命令行中运行以下命令:

npm

npm create @quick-start/electron@latest

yarn

yarn create @quick-start/electron

pnpm

pnpm create @quick-start/electron

然后按照提示操作即可!

✔ Project name: … 
✔ Select a framework: › vue
✔ Add TypeScript? … No / Yes
✔ Add Electron updater plugin? … No / Yes
✔ Enable Electron download mirror proxy? … No / Yes
Scaffolding project in ./...
Done.

你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个 Electron + Vue 项目,运行:

# npm 7+,需要添加额外的 --:
npm create @quick-start/electron@latest my-app -- --template vue
# yarn
yarn create @quick-start/electron my-app --template vue
# pnpm
pnpm create @quick-start/electron my-app --template vue

目前支持的模板预设如下:

JavaScriptTypeScript
vanillavanilla-ts
vuevue-ts
reactreact-ts
sveltesvelte-ts
solidsolid-ts

克隆模板

create-electron 是一个快速生成主流 Electron 框架基础模板的工具。你还可以用如 degit 之类的工具,使用 electron-vite-boilerplate 模板来搭建项目。

npx degit alex8088/electron-vite-boilerplate electron-app
cd electron-app
npm install
npm run dev

功能

Vite 支持

继承 Vite 的所有优点,使用方式与 Vite 相同。

完全构建

electron-vite 可以智能地为 Electron 的独特环境打包源代码。

  • 主进程和预加载脚本: 无论是在开发还是生产中,这些都会被打包成 CommonJS 模块,并在 Node.js 环境中运行。

  • 渲染器: 在开发过程中,electron-vite 会将 CommonJS / UMD 模块转换为 ES 模块以支持 HMR。在生产过程中,这些将被打包成 IIFE 模块,并在浏览器环境中运行。

集中配置和预设配置

当你使用 Vite 来打包你的 Electron 源代码时,项目结构可能是这样的:

├──main
│  ├──...
│  └──vite.config.js
├──preload
│  ├──...
│  └──vite.config.js
└──renderer├──...└──vite.config.js

而在 electron-vite 中,所有的 Vite 配置都合并到一个文件中。项目结构是这样的:

├──src/
│  ├──main
│  ├──preload
│  └──renderer
├──electron.vite.config.js
└──package.json

此外,electron-vite 内置了很多配置,如outDir、target、entry、formats、external等,以此进行智能解析和配置检查。

渲染进程 HMR

得益于 Vite 极快的 HMR 功能,我们在渲染器开发中使用它。它将极大地提高 Electron 的开发效率。

热重载

热重载是指在主进程或预加载脚本模块发生变化时快速重新构建并重启 Electron 程序。事实上,并不是真正的热重载,而是类似的。它为开发者带来了很好的开发体验。

资源处理

除了像 Vite 一样支持 web 应用程序中的 静态资源处理 之外,electron-vite 还优化了 Electron 主进程中的资源处理。

Electron 的 ESM 支持

Electron 从 Electron 28 开始支持 ES 模块。 electron-vite(自 2.0 起)同样支持使用 ESM 来开发和构建你的 Electron 应用程序。

源代码保护

electron-vite 使用 V8 字节码来保护源代码。

TypeScript 装饰器

electron-vite 创建了一个可选的由 swc 驱动 swcPlugin 插件来替代 Vite 的 esbuild 插件以支持 TypeScript 装饰器。

Worker Threads

electron-vite 为 Electron 主进程提供 Node.js 工作线程支持。

调试

非常容易在 IDE 中调试,例如 vscode 或 webstorm。

相关新闻

  • 情感语音合成技术前沿:EmotiVoice背后的科研力量
  • EmotiVoice在直播场景的应用尝试:虚拟主播实时发声
  • 已解决 Python 的execjs 调用js 报错:UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xf1‘ in position

最新新闻

  • Windows老游戏终极兼容解决方案:dxwrapper完全指南
  • 编写自定义脚本来自动化 vLLM 部署流程
  • 宣城市宁国吃正宗皖南徽菜 + 宁国农家土菜推荐去哪家? - 速递信息
  • 武汉买猫买狗去哪看?梦宠山庄实地体验分享 - 园友3800037
  • 从零到一:Jetlinks物联网平台服务器部署实战与避坑指南
  • (转)一次ANSYS EM 2023R1 “Request name electronics_desktop does not exist in the licensing pool.“的离谱解决记录

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号