Vue 3 项目初始化怎么配置 Electron 桌面端打包

酷枫姑娘_7656

酷枫姑娘_7656

2026-11-12

121人浏览

原创

Vue 3 + Electron 项目需分清开发集成与生产打包两阶段,核心是规避file://协议下history路由失效、进程通信断连、资源路径丢失问题;推荐Vite初始化+electron-builder打包,主进程隔离、路由改hash、vite设base='./'、package.json name小写短横线、主进程双环境加载逻辑、electron-builder.config.cjs配置。

vue 3 项目初始化怎么配置 electron 桌面端打包

Vue 3 项目初始化后配置 Electron 桌面端打包,核心是分清“开发集成”和“生产打包”两个阶段。关键不在于堆砌依赖,而在于结构清晰、协议兼容、配置闭环——尤其要避开 file:// 协议下 history 路由失效、主渲染进程通信断连、打包时资源路径丢失 这三类高频问题。

选对初始化方式,省掉一半坑

推荐优先使用官方脚手架组合,避免手动拼接:

  • Vue3 + Vite 项目:执行 npm create vite@latest my-app -- --template vue,再进入目录安装依赖;不要用 Vue CLI,它与 Electron 的构建链路耦合更深、调试更绕
  • 一步集成 Electron:项目创建完成后,直接安装 electron 和 electron-builder(非 electron-packager),命令为:
    pnpm add electron electron-builder -D(推荐 pnpm,锁版本更稳)
  • 拒绝“裸装 Electron”:别手动写 main.js 后硬塞进 Vue 项目——应新建 electron/ 目录,把主进程逻辑(main.ts)、预加载脚本(preload.ts)独立存放,与 src/ 渲染层物理隔离

必须改的三项基础配置

以下修改缺一不可,否则打包后白屏或路由跳转失败:

  • Vue Router 切换为 hash 模式:Electron 加载的是本地 file:// 资源,history 模式依赖服务端支持,无法回退。修改 src/router/index.ts:
    ✅ 正确写法:createRouter({ history: createWebHashHistory(), routes })
    ❌ 错误写法:createWebHistory()
  • vite.config.ts 中设置 base: './':确保打包后静态资源(js/css)路径相对正确。若不设,Vite 默认生成绝对路径 /assets/xxx.js,在 file 协议下 404
  • package.json 的 name 字段小写+短横线:例如 "name": "my-electron-app"。含大写字母、空格或中文会导致 electron-builder 构建失败,报错如 Invalid package name

主进程启动逻辑要适配双环境

开发时加载 http://localhost:3000(热更新),打包后加载 dist_electron/index.html(静态文件)。主进程代码需自动识别:

Springboot Vue Builder
Springboot Vue Builder

从零开始编排 SpringBoot+Vue 全栈项目工作流,适用于新建全栈项目或完整脚手架请求,触发后依次调用 product‑spec‑builder(需求调研)等模块。

下载
  • 判断环境:const isDev = process.env.NODE_ENV === 'development'
  • 开发时加载地址:win.loadURL('http://localhost:3000')
  • 生产时加载文件:win.loadFile(path.join(__dirname, '../dist_electron/index.html'))
  • 同时在 webPreferences 中启用预加载脚本:preload: path.join(__dirname, 'preload.js'),并保持 contextIsolation: true 和 nodeIntegration: false(安全前提)

打包命令与最小必要配置

无需复杂配置即可出包,先跑通再优化:

  • 在 package.json 的 scripts 中添加:
    "build:electron": "electron-builder"
  • 根目录新建 electron-builder.config.cjs(CommonJS 格式,兼容性更好):
    module.exports = { appId: 'com.example.myapp', productName: 'MyApp', directories: { output: 'dist_electron' }, win: { target: 'nsis' } };
  • 运行 pnpm run build:electron,首次会下载 Electron 二进制,国内建议提前配置镜像(在 .npmrc 中加:electron_mirror=https://npmmirror.com/mirrors/electron/)

不复杂但容易忽略,走完这四步,一个可双平台打包、能自动更新、路由可用的 Vue3 + Electron 应用骨架就立住了。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vue.js vue vue 3

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2963

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

6483

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

7350

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

7238

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

1023

5

vue2.0和3.0区别
vue2.0和3.0区别

vue2.0和3.0区别:vue2的响应式原理是利⽤“Object.defineProperty()”对数据进⾏劫持结合发布订阅模式的⽅式来实现,vue3中使⽤了es6的proxy API对数据代理,实现对数据的监控。本专题为大家提供vue2.0和3.0区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.17

1774

5

vue3的生命周期有哪些
vue3的生命周期有哪些

vue3的生命周期:1、beforecreate;2、created;3、beforemount;4、mounted;5、beforeupdate;6、updated;7、beforedestroy;8、destroyed;9、activated;10、deactivated等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

12602

5

Vue3组合式API与组件开发实战
Vue3组合式API与组件开发实战

本专题讲解 Vue 3 组合式 API 的核心概念与应用技巧,深入分析响应式系统、生命周期管理、组件设计与复用策略。通过完整项目案例,指导前端开发者实现高性能、结构清晰的 Vue 应用,提升开发效率与代码可维护性。

2026.02.10

336

23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.5万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习