发布时间:2026/8/6 19:15:40
若依 B 端从浏览器访问升级为 Windows 安装包交付流程 若依 B 端从浏览器访问升级为 Windows 安装包交付流程1. 文档目的本文记录本项目将开源若依 B 端从默认的“浏览器访问 Vue 管理后台”方式升级为“Windows 桌面安装包交付”方式的完整流程。当前已验证通过的目标效果是测试人员下载一个 Windows 安装器.exe。双击安装后桌面出现Appliance Desktop应用图标。用户点击桌面图标后打开独立应用窗口。应用窗口内加载若依 Vue 前端界面。前端直接访问一体机或测试服务器上的 Java 后端 API。用户全程不需要手动打开浏览器。应用可以从 Windows 应用列表正常卸载。绿色 zip 包曾作为中间验证环节使用但当前正式测试交付方案以 Windows 安装包为准。2. 方案背景开源若依 Vue 管理后台的常见使用方式是后端 Java 服务部署到服务器。Vue 前端构建后部署到 Nginx 或 Web 容器。用户通过浏览器访问后台地址。这种方式适合通用 Web 管理后台但在一体机或客户现场交付场景里会遇到一些体验和运维问题用户需要记住浏览器访问地址。不同测试人员的浏览器环境不一致。地址栏、浏览器缓存、下载策略等会影响体验。客户更容易理解“安装一个应用然后从桌面打开”。售后分发时希望只给测试人员一个明确的安装包。因此本项目采用 Electron 将若依 Vue 前端包装成 Windows 桌面应用再使用 electron-builder 生成 NSIS 安装包。3. 最终使用方式后端部署方式保持不变Java 后端 MySQL/MariaDB Redis后端需要能被测试电脑访问例如http://测试服务器IP:8080/captchaImage桌面端交付方式变为Appliance Desktop Setup-YYYYMMDD.exe测试人员操作双击安装包。安装完成后桌面出现Appliance Desktop图标。双击桌面图标打开客户端。首次启动填写后端地址http://测试服务器IP:8080使用测试账号登录admin / admin123注意测试人员电脑必须能访问测试服务器的8080端口。防火墙、安全组、局域网策略需要放开对应访问。桌面安装包只包含前端桌面客户端不包含 Java 后端、MySQL/MariaDB、Redis。4. 技术架构整体结构如下Windows 桌面应用 └─ Electron 主进程 └─ BrowserWindow └─ 若依 Vue 前端 dist └─ Axios 请求一体机后端 API 测试服务器 / 一体机 ├─ Java 后端 ├─ MySQL 或 MariaDB └─ Redis关键点Electron 不替代后端只负责提供独立桌面窗口和本地配置能力。Vue 前端仍然是原有若依 B 端界面。API 地址由用户首次启动时填写并保存到 Electron 的userData目录。后续启动时客户端会自动读取本地保存的后端地址并探测/captchaImage。5. 项目目录本文涉及的主要目录如下C:\Users\WD\Desktop\test-project\test-project\Project ├─ web\RuoYi-Vue3 # 若依 Vue3 前端 Electron 桌面端 ├─ sever\RuoYi-Vue # 若依 Java 后端 └─ deploy\packages # 桌面端安装包交付目录前端工程目录C:\Users\WD\Desktop\test-project\test-project\Project\web\RuoYi-Vue3安装包输出目录C:\Users\WD\Desktop\test-project\test-project\Project\deploy\packages6. Electron 入口当前项目已在前端工程中配置 Electronweb/RuoYi-Vue3/electron/main.cjs web/RuoYi-Vue3/electron/preload.cjsmain.cjs负责创建独立桌面窗口。加载开发环境地址或生产环境dist/index.html。读取和写入一体机后端地址配置。控制外部链接不要直接在桌面窗口内乱跳转。preload.cjs负责通过contextBridge暴露安全的配置读写接口。让 Vue 前端可以读取和保存后端 API 地址。7. package.json 关键配置前端工程的package.json中关键脚本如下{scripts:{build:web:vite build,build:desktop:npm run build:web electron-builder --win nsis node scripts/stage-desktop-installer.cjs,build:installer:npm run build:web electron-builder --win nsis node scripts/stage-desktop-installer.cjs,pack:win:npm run build:web electron-builder --win --dir}}推荐日常打安装包使用npm.cmd run build:installer说明build:web先构建 Vue 前端生成dist。electron-builder --win nsis再构建 Windows NSIS 安装包。stage-desktop-installer.cjs最后把安装器复制到deploy/packages并加上日期。Windows PowerShell 下建议使用npm.cmd不要直接使用npm。某些机器会因为执行策略禁止加载npm.ps1导致命令被拦截。8. electron-builder 配置当前安装包使用 electron-builder 的 NSIS target{build:{appId:com.appliance.desktop,productName:Appliance Desktop,directories:{output:release},files:[dist/**/*,electron/**/*,package.json],win:{target:[{target:nsis,arch:[x64]}],artifactName:${productName} Setup ${version}.${ext}},nsis:{oneClick:true,perMachine:false,allowElevation:false,createDesktopShortcut:true,createStartMenuShortcut:true,shortcutName:Appliance Desktop,runAfterFinish:true,deleteAppDataOnUninstall:false}}}配置含义target: nsis生成 Windows 安装器。arch: x64构建 64 位 Windows 客户端。oneClick: true一键安装减少测试人员操作。perMachine: false用户级安装不要求管理员权限。allowElevation: false不主动申请提权。createDesktopShortcut: true安装后创建桌面快捷方式。createStartMenuShortcut: true安装后创建开始菜单快捷方式。runAfterFinish: true安装完成后可直接启动应用。deleteAppDataOnUninstall: false卸载时不主动删除用户配置避免误删后端地址等本地配置。9. 安装包归档脚本脚本位置web/RuoYi-Vue3/scripts/stage-desktop-installer.cjs作用从release目录查找 electron-builder 生成的安装器。复制到项目统一交付目录deploy/packages。按日期命名为Appliance Desktop Setup-YYYYMMDD.exe例如本次测试通过的产物C:\Users\WD\Desktop\test-project\test-project\Project\deploy\packages\Appliance Desktop Setup-20260805.exe10. 打包流程进入前端工程目录cd C:\Users\WD\Desktop\test-project\test-project\Project\web\RuoYi-Vue3执行安装包构建npm.cmd run build:installer成功后应看到类似输出vite build built in xx.xx s electron-builder building targetnsis filerelease\Appliance Desktop Setup 3.9.2.exe Staged installer: C:\Users\WD\Desktop\test-project\test-project\Project\deploy\packages\Appliance Desktop Setup-YYYYMMDD.exe最终交付文件C:\Users\WD\Desktop\test-project\test-project\Project\deploy\packages\Appliance Desktop Setup-YYYYMMDD.exe11. 分发给同事测试当前正式测试方案只需要发送安装器.exeAppliance Desktop Setup-YYYYMMDD.exe可以通过以下方式分发企业微信或钉钉直接发送。如果聊天工具拦截.exe可以压缩成 zip 再发送。如果仍然拦截可以上传到内网共享盘、NAS、网盘或测试服务器下载目录。发给测试人员时建议附带说明测试客户端安装方式 1. 双击 Appliance Desktop Setup-YYYYMMDD.exe 安装。 2. 安装完成后桌面会出现 Appliance Desktop 图标。 3. 双击桌面图标打开客户端。 4. 首次启动填写后端地址 http://测试服务器IP:8080 5. 登录账号 admin / admin123 注意 - 测试电脑必须能访问测试服务器的 8080 端口。 - 如果 Windows 提示未知发布者选择“更多信息” - “仍要运行”。 - 这个安装包只包含桌面客户端不包含后端、数据库、Redis。 - 后端必须已经部署好并能访问 http://测试服务器IP:8080/captchaImage12. 测试验收流程12.1 后端连通性测试在测试电脑浏览器或命令行确认后端可访问http://测试服务器IP:8080/captchaImage如果不能访问先检查Java 后端是否启动。服务器防火墙是否放开8080。云服务器安全组是否放开8080。测试电脑和服务器是否处在可互通网络中。12.2 安装测试测试步骤双击安装器。等待安装完成。检查桌面是否出现Appliance Desktop图标。检查开始菜单是否出现Appliance Desktop。验收标准安装过程无报错。无需手动解压文件。无需管理员权限即可完成用户级安装。12.3 启动测试测试步骤双击桌面Appliance Desktop。确认打开独立桌面窗口。首次启动时填写后端地址。点击连接。验收标准应用窗口正常打开。不需要手动打开浏览器。后端地址保存成功。可进入登录页。12.4 登录测试测试账号admin / admin123验收标准验证码可以加载。登录请求正常发送到测试后端。登录成功后进入若依 B 端首页。12.5 卸载测试测试步骤打开 Windows 应用列表。找到Appliance Desktop。点击卸载。验收标准应用可以正常卸载。主程序文件被移除。Windows 应用列表中不再显示该应用。本项目当前测试结果下载、安装、启动、卸载均已验证通过。13. 常见问题13.1 npm 命令被 PowerShell 拦截现象无法加载文件 npm.ps1因为在此系统上禁止运行脚本处理方式使用npm.cmd run build:installer不要直接使用npm run build:installer13.2 electron-builder 下载超时现象connect ETIMEDOUT 20.205.243.166:443原因electron-builder在构建安装包时可能需要下载 Electron、NSIS 或相关构建资源。该错误通常是访问 GitHub 资源超时不是 Vue 构建失败。处理方式直接重试构建。更换网络。配置代理。复用已经成功下载过的本地缓存。判断标准如果只看到vite build built但后面electron-builder报ETIMEDOUT说明前端构建成功安装包没有成功生成。如果最后看到Staged installer: ...Appliance Desktop Setup-YYYYMMDD.exe说明安装包生成成功。13.3 npm 和 pnpm 如何选择当前项目使用package-lock.json说明依赖主要由 npm 管理。本次安装包链路已经验证通过的命令是npm.cmd run build:installer如果仅为解决electron-builder下载超时不建议切换 pnpm因为超时发生在electron-builder下载资源阶段换包管理器通常不能解决网络问题。如后续团队决定切换 pnpm需要统一执行pnpm install pnpm run build:installer并统一提交pnpm-lock.yaml避免 npm 和 pnpm 混用导致依赖锁文件混乱。13.4 Windows 提示未知发布者原因当前第一版安装包未配置企业代码签名证书。测试阶段处理方式更多信息 - 仍要运行正式客户交付建议申请或购买代码签名证书。在 electron-builder 中配置 Windows 签名。避免客户电脑频繁出现安全提示。13.5 安装后连接不上后端优先检查填写地址是否正确例如http://测试服务器IP:8080测试电脑是否能访问http://测试服务器IP:8080/captchaImage后端服务是否启动。服务器防火墙或安全组是否放开8080。后端是否允许当前桌面端访问接口。14. 当前方案边界当前安装包方案包含Windows 桌面客户端。Electron 运行壳。若依 Vue 前端静态资源。本地保存后端 API 地址的能力。当前安装包方案不包含Java 后端。MySQL 或 MariaDB。Redis。OCR、模型、算法服务。自动更新。代码签名证书。后端仍需要单独部署到测试服务器或一体机。15. 后续优化建议建议后续按优先级优化配置正式应用图标替换 Electron 默认图标。增加代码签名减少 Windows 安全提示。增加安装包版本号和构建日期展示。增加内网下载页统一分发安装包。增加自动更新能力但需要先明确客户现场网络策略。增加安装包哈希校验方便确认安装包未损坏或被替换。16. 技术博客提纲后续可将本文改写为技术博客标题可以是如何把若依 Vue 管理后台包装成 Windows 桌面安装包建议博客结构背景为什么 B 端后台不再只通过浏览器访问。目标安装后桌面打开不依赖用户手动打开浏览器。技术选型Electron Vue electron-builder。改造步骤添加 Electron 主进程和 preload。API 地址处理首次启动填写后端地址并本地保存。打包配置NSIS 用户级安装包配置。构建命令和产物归档。测试流程安装、启动、连接后端、登录、卸载。踩坑记录npm.ps1、GitHub 下载超时、未知发布者。总结这种方式适合一体机、局域网和客户现场测试交付。17. 快速命令汇总进入前端工程cd C:\Users\WD\Desktop\test-project\test-project\Project\web\RuoYi-Vue3构建 Windows 安装包npm.cmd run build:installer安装包输出位置C:\Users\WD\Desktop\test-project\test-project\Project\deploy\packages\Appliance Desktop Setup-YYYYMMDD.exe验证后端http://测试服务器IP:8080/captchaImage测试账号admin / admin123效果视频

相关新闻

2026/8/6 19:15:40

Pixie多数据库连接实战:MySQL、PostgreSQL与SQLite无缝切换

Pixie多数据库连接实战:MySQL、PostgreSQL与SQLite无缝切换 【免费下载链接】pixie Database query builder for PHP, framework agnostic, lightweight and expressive. 项目地址: https://gitcode.com/gh_mirrors/pixie3/pixie Pixie是一款轻量级且功能强大…

2026/8/6 19:10:40

题解:洛谷 P5704 【深基2.例6】字母转换

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

2026/8/6 19:10:40

终极消息队列指南:为什么Queues.IO是架构师必备的资源宝库

终极消息队列指南:为什么Queues.IO是架构师必备的资源宝库 【免费下载链接】queues.io Queues, all of them. 项目地址: https://gitcode.com/gh_mirrors/qu/queues.io 在现代分布式系统架构中,消息队列的选择往往决定了系统的可扩展性、可靠性和…

2026/8/6 21:10:50

零代码实现Unity游戏角色状态机:XDreamer可视化编程实战指南

1. 项目概述:从美术到游戏开发的桥梁作为一名在游戏行业摸爬滚打了十多年的美术,我深知从美术资产到可交互游戏角色之间那道看似不可逾越的鸿沟。过去,一个角色的跑、跳、攻击、受击等复杂行为逻辑,需要我们美术把需求文档、序列帧…

2026/8/6 21:10:50

终极免费macOS窗口置顶工具Topit:彻底告别多窗口遮挡烦恼

终极免费macOS窗口置顶工具Topit:彻底告别多窗口遮挡烦恼 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 还在为macOS上多个窗口互相遮挡而烦恼吗&a…

2026/8/6 21:10:50

Unity项目资源优化:使用Maintainer插件精准清理未使用资产

1. 项目概述:为什么Unity项目需要“清道夫”?如果你是一个Unity开发者,无论项目大小,只要开发时间超过几个月,打开你的项目Assets文件夹,大概率会看到一堆让你眉头紧皱的东西:一个早已弃用的UI贴…

2026/8/6 21:10:50

MySQL数据库核心概念与优化实践指南

1. MySQL基础核心概念回顾在数据库领域摸爬滚打十几年,我见过太多开发者在学习MySQL时容易忽视基础概念。让我们先明确几个关键点:MySQL作为关系型数据库管理系统(RDBMS),其核心在于表结构的合理设计和SQL语句的高效运…

2026/8/6 21:10:50

TMPEffects命令系统详解:用代码控制文本动画的高级方法

TMPEffects命令系统详解:用代码控制文本动画的高级方法 【免费下载链接】TMPEffects Easily animate Unity text and apply other effects with custom tags 项目地址: https://gitcode.com/gh_mirrors/tm/TMPEffects TMPEffects是一款专为Unity设计的文本动…

2026/8/6 21:05:50

KMS_VL_ALL_AIO:5步掌握Windows和Office智能激活技巧

KMS_VL_ALL_AIO:5步掌握Windows和Office智能激活技巧 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office激活烦恼吗?KMS_VL_ALL_AIO智能激活脚本为你提…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/6 0:04:22

电力系统调度中的源荷不确定性建模与优化实践

1. 电力系统调度中的源荷不确定性挑战现代电力系统正面临前所未有的复杂性,其中源荷不确定性(Source-Load Uncertainty)已成为调度决策中最棘手的难题之一。我在参与某省级电网调度系统升级时,曾遇到风电预测误差导致日内调度计划…

2026/8/6 0:04:22

VGG-T3技术解析:3D重建速度的革命性突破

1. 项目概述:VGG-T3如何重新定义3D重建速度在计算机视觉领域,3D场景重建一直是个计算密集型任务。传统方法重建1000帧图像规模的场景往往需要数小时甚至更长时间,而英伟达最新发布的VGG-T3技术将这个时间压缩到了惊人的54秒。这个突破性进展来…

2026/8/6 0:04:22

深度解析旅游网站建设的意义及其对行业发展的深远影响与核心价值体现

在这个数字化浪潮席卷全球的今天,我们似乎已经忘记了,曾经有一段时间,人们想要去一个陌生的地方,只能靠在书桌前翻阅厚厚的旅游杂志,或者向刚从那里回来的朋友询问那些模糊不清的印象。那时候,“远方”是一个需要精打细算才能抵达的奢侈概念。而现在,只需要一部手机,轻…

2026/8/5 19:21:13

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/5 19:21:13

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/6 20:45:01

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…