jeecgboot:electron桌面应用打包

新版jeecgboot框架已经可以支持electron桌面应用打包了,具体步骤和常见错误可以参考官网文档:

https://help.jeecg.com/ui/setup/electron-build

https://help.jeecg.com/ui/setup/electron-open

本文用来记录我的实践过程。

1、安装依赖

官网下载的代码,package.json并不包含electron依赖,先执行安装其他依赖,因为electron的依赖安装较慢,稍后单独安装。

先设置镜像,这样安装依赖会快一点。

pnpm config set registry https://registry.npmmirror.com/

pnpm install,其他依赖安装好了后,再单独安装electron。

pnpm install -D electron@35.1.4

pnpm install -D electron-builder

pnpm install -D vite-plugin-electron

安装跟jeecgboot官网一样的electron版本,避免版本兼容性问题。

记得要加-D,这样他就会出现在devDependencies列表里。

依赖安装如果报错,就多试几次,我试了好几次才成功。

2、本地运行

pnpm run electron:dev

果然跟官网一样报错了:

please delete node_modules/electron and try installing again。

在项目根目录下运行node node_modules/electron/install.js,会从远程下载electron的zip文件,下载速度非常慢,我耐心等待,结果下载到60%的时候,报错了。

在deepseek的帮助下,直接下载安装包和密钥文件。

https://npmmirror.com/mirrors/electron/35.1.4/electron-v35.1.4-win32-x64.zip

https://npmmirror.com/mirrors/electron/35.1.4/SHASUMS256.txt

把他们放在Cache目录下:

项目的根目录下执行以下命令:

1. 设置强制使用本地校验文件(核心!)

$env:electron_use_remote_checksums="false"

2. 设置缓存目录

$env:electron_config_cache="C:\Users\chengxl\AppData\Local\electron\Cache"

3. 设置镜像源(避免其他潜在下载)

$env:ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"

4. 验证环境变量是否生效

echo "远程校验已禁用: $env:electron_use_remote_checksums"

echo "缓存目录: $env:electron_config_cache"

确定远程校验已禁用为false之后,然后执行:

node node_modules/electron/install.js

这样代码很快完成,没任何输出。

以上操作的目的是强制让electron/install.js使用本地安装包和密钥文件来安装electron。

3、打包

打包的时候果然也遇到了官网提到的错误:

Cannot create symbolic link。

使用管理员身份运行命令提示符,cd到项目根目录,再执行pnpm run electron:build-all,就可以了,至此没遇到其他问题了。

相关推荐
用户69371750013844 小时前
Google 正在“收紧侧加载”:陌生 APK 安装或需等待 24 小时
android·前端
蓝帆傲亦4 小时前
Web 前端搜索文字高亮实现方法汇总
前端
用户69371750013844 小时前
Room 3.0:这次不是升级,是重来
android·前端·google
漫随流水5 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
踩着两条虫7 小时前
VTJ.PRO 核心架构全公开!从设计稿到代码,揭秘AI智能体如何“听懂人话”
前端·vue.js·ai编程
jzlhll1238 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin
用头发抵命8 小时前
Vue 3 中优雅地集成 Video.js 播放器:从组件封装到功能定制
开发语言·javascript·ecmascript
蓝冰凌8 小时前
Vue 3 中 defineExpose 的行为【defineExpose暴露ref变量】详解:自动解包、响应性与实际使用
前端·javascript·vue.js
奔跑的呱呱牛9 小时前
generate-route-vue基于文件系统的 Vue Router 动态路由生成工具
前端·javascript·vue.js