前言
桌面软件在办公、工具等场景中依然有着不可替代的地位,但传统桌面开发往往需要学习 C++、C# 等语言,门槛不低。electron-egg 的目标是让熟悉 Web 技术的人也能快速上手桌面应用开发。
这篇文章就来聊聊这个框架的整体情况,包括它能做什么、有什么特点、代码怎么写,以及实际效果如何。希望能给想入门桌面开发的朋友一些参考。

项目介绍
electron-egg 是一个跨平台的桌面软件开发框架,基于 Electron 和 Egg.js 的设计理念构建。它的核心定位是"入门简单、企业级、跨平台"。
目前这个框架已经在记账、政务、医疗、学校、股票交易、ERP、娱乐、视频等领域有了不少实际应用案例。一套代码能打包成 Windows、Mac、Linux 以及国产 UOS、Deepin、麒麟等系统的安装包,对需要覆盖多个平台的项目来说比较实用。

项目功能
项目特点
跨平台支持:一套代码,打包成 Windows、Mac、Linux、UOS、Deepin、麒麟等多个版本
前端技术栈自由:不绑定任何前端框架,Vue、React、HTML 都可以拿来用
模块化架构:采用"单业务进程 + 模块化 + 多任务"的设计,大型项目也能保持结构清晰
工程化思维:可以用前后端的开发习惯来写桌面软件,服务层、控制器、路由都有规范
高性能:事件驱动 + 非阻塞 I/O,页面响应比较流畅
跨语言扩展:业务逻辑可以用 Java、Go、Python、C++ 等语言编写,再通过框架调用
项目技术
Electron:桌面应用的基础运行时
Node.js:提供文件系统、进程管理等底层能力
Egg.js 设计理念:借鉴了阿里开源的企业级 Node.js 框架的插件机制、中间件和配置管理思路
TypeScript / JavaScript:业务代码主要用 JS 或 TS 编写
Vue(Demo 示例):前端 Demo 用 Vue 实现,但实际项目可按需替换
项目代码
project/├── package.json # npm 配置├── build/ # 打包脚本和图标资源├── cmd/ # 命令配置(开发、打包)├── electron/ # 主进程服务│ ├── main.js # 入口文件│ ├── config/ # 配置(default/local/prod)│ ├── controller/ # 控制器,接收前端请求│ ├── service/ # 业务层,处理具体逻辑│ ├── preload/ # 预加载脚本(托盘、升级等)│ └── jobs/ # 定时任务或后台任务├── frontend/ # 前端目录(Vue Demo)├── public/ # 资源目录(生产环境加载)│ ├── dist/ # 编译后的前端资源│ └── electron/ # 加密后的主进程代码├── out/ # 打包输出(exe/dmg/deb 等)├── logs/ # 运行日志└── data/ # 内置数据库文件控制器示例,接收前端参数并调用服务层:
const { Controller } = require('ee-core');classExampleControllerextendsController{async test(args, event) {// 调用 service 处理业务const result = await Services.get('example').test('electron');// 向前端返回数据return result; }}服务层示例,处理具体业务逻辑:
const { Service } = require('ee-core');classExampleServiceextendsService{async test(args) {return { status: 'ok', params: args }; }}应用生命周期入口,继承 Application 类:
const { Application } = require('ee-core');classIndexextendsApplication{async ready() {// 框架加载完成后的初始化操作 }async electronAppReady() {// Electron 就绪后的操作 }async windowReady() {// 主窗口加载完成 }}项目效果
实际跑起来的效果和普通 Electron 应用没什么区别,但因为框架把前后端分离了,开发体验会更接近 Web 项目的感觉。





用 npm run build 就能打出各平台的安装包,对需要多端发布的项目来说比较方便。
项目源码
GitHub:https://github.com/dromara/electron-egg
Gitee:https://gitee.com/dromara/electron-egg
总结
electron-egg 的核心思路是降低桌面开发的门槛,让熟悉 Web 技术的人也能快速上手。它不像传统方案那样要求你去学 C++ 或 Win32 API,而是用 Node.js + 前端技术栈来解决问题。
从功能上看,配置管理、通信机制、任务调度、打包升级这些桌面软件的常见需求,框架都提供了现成的解决方案。如果你正好需要开发一个跨平台桌面应用,又不想从零开始搭架构,这个框架值得一试。
关键词
#跨平台桌面开发、Electron、#桌面软件框架、#Node.js、前端工程化、Vue桌面应用、#React桌面应用、#国产系统适配、字节码加密、自动升级、模块化架构、进程通信
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!


方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码
有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力




夜雨聆风