跳到主要内容

electron桌面应用打包

JeecgBoot v3.8+ 支持electron桌面应用打包,采用Vite+Vue3+Electron构建客户端桌面应用。

  • 支持windows、linux、macOS三大平台。
  • 支持将前端打成exe、dmg、deb等安装包,支持在线升级。
  • 开源版默认不提供此功能,会导致安装依赖很慢。

效果参考

打包步骤

  1. 安装依赖,运行pnpm install
  2. 运行npm run electron:dev,测试是否能正常运行,如果报错,参考下面写的常见问题的解决方案
  3. 修改配置文件
    • .env: (可选)将VITE_GLOB_APP_TITLEVITE_GLOB_APP_SHORT_NAME修改为你的项目名称
    • .env.prod_electron: (可选)将VITE_GLOB_API_URLVITE_GLOB_DOMAIN_URL修改为你的线上后台地址
    • electron-builder.yaml: (可选)将productName修改为你的产品名称
  4. 运行npm run electron:build-all进行打包,这个命令首先会编译项目,然后再打包成安装包

其他命令参考如下:

  1. 打包成功后,会在项目根目录下生成 dist-electron 目录

windows下可进入win-unpacked目录直接运行打包后的应用,或运行xxx Setup x.x.x.exe进行安装

常见问题

一、安装依赖卡着不动

不用担心并不是出问题,而是electron安装就是很慢,大概10分钟左右

二、依赖已安装但仍无法运行

依赖已经提示安装完成了,但是仍然打包不了(或 dev 运行不了)

三、打包时报错

  • 报错示例:Cannot create symbolic link
    • 报错原因:

      权限不足,创建符号链接失败

    • 解决方案:

      可以先打开有管理员权限的命令行,cd 到项目目录,再执行npm run electron:build-all命令进行打包

  • 报错示例:⨯ remove xxx\win-unpacked\d3dcompiler_47.dll: Access is denied.
    • 报错原因:

      由于运行了 win-unpacked 中的免安装应用,导致文件占用

    • 解决方案:

      只需关闭全部打开的应用并重新打包即可

四、打包报错缺少@types\mousetrap

ENOENT: no such file or directory, stat 'E:\workspace-ui\jeecgboot-vue3-idea2025\node_modules\@types\mousetrap'  failedTask=build stackTrace=Error: ENOENT: no such file or directory, stat 'E:\workspace-ui\jeecgboot-vue3-idea2025\node_modules\@types\mousetrap'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
进程已结束,退出代码为 1

解决方法:删除node_modules,依赖重新安装

五、注释electron功能

此功能会导致依赖安装很慢,影响开发效率,如果平时不需要使用此功能,可以暂时注释掉,步骤如下:

1.注释整个文件

build/vite/plugin/electron.ts

2.注释electron插件加载逻辑

修改文件build/vite/plugin/index.ts,搜索electron plugin config注释相关逻辑代码

3.修改package.json删除相关依赖