讲师中心 微信公众号

工具推荐

视频效率加速
立刻MV
立刻MV

低成本歌曲 MV、视频生成

Seko
Seko

AI短剧一键生成成片

updream

一键生成高质量推广成片

AniShort
AniShort

AI短剧协同制作平台

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

酷枫姑娘_7656

酷枫姑娘_7656

发布时间:2026-11-12 10:03:20

|

121人浏览过

|

来源于php中文网

原创

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 应用骨架就立住了。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

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

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

2963

2023.08.11

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

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

6503

2023.10.09

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

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

7350

2024.03.19

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

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

7238

2024.03.22

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

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

1023

2024.05.22

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

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

1774

2023.07.17

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

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

12602

2024.02.23

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

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

336

2026.02.10

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

80

2026.11.06

热门下载

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

精品课程

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

共42课时 | 17.5万人学习

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

共12课时 | 1.4万人学习

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

共18课时 | 1.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn