开始
go 1.20.4 ee-go 1.3.0
go
凭借着简单、高效、跨平台等优势,迅速成为开发者最喜爱的语言之一。
electron-egg
深度集成了go,并通过 ee-go
mod,让开发者非常方便的进程业务开发,而无需关注复杂的系统环境。
如果您将核心业务用go来开发,那么它将拥有堪比c#
、qt
一样流畅的使用体验。
# 准备
- 推荐 go 1.20.4
- 注:go 1.20 是支持win7、macOS 10.x 的最后一个版本
# 下载安装
- 下载项目
# gitee
git clone https://gitee.com/dromara/electron-egg.git
# github
git clone https://github.com/dromara/electron-egg.git
- 切换
demo
分支
git checkout -b demo-go remotes/origin/demo
- 安装 前端、electron、go 依赖
# 根目录安装electron依赖
npm i
# 进入前端目录安装依赖
cd ./frontend
npm i
# 先全局安装热重载 air
go install github.com/air-verse/air@v1.49.0
# 进入go目录安装依赖
cd ../go
go mod tidy
# 在electron中如何运行go的可执行程序
通过cross模块的API来启动。
# API模式
创建go服务
// 文件 electron/service/cross.js
const { cross } = require('ee-core/cross');
async createGoServer() {
// method 1: Use the default Settings
//const entity = await cross.run(serviceName);
// method 2: Use custom configuration
const serviceName = "go";
const opt = {
// 程序名称,一般填写可执行程序名
name: 'goapp',
cmd: path.join(getExtraResourcesDir(), 'goapp'),
directory: getExtraResourcesDir(),
args: ['--port=7073'],
// 程序退出时,是否退出electron应用
appExit: true,
}
const entity = await cross.run(serviceName, opt);
logger.info('server name:', entity.name);
return;
}
# 跟随软件启动
如果你希望桌面软件运行时就启动go
服务,有以下方式。
一:在预加载
模块,直接引入并调用。
// 文件 electron/preload/index.js
/*************************************************
** preload为预加载模块,该文件将会在程序启动时加载 **
*************************************************/
const { crossService } = require('../service/cross');
function preload() {
// 直接调用
crossService.createGoServer();
}
/**
* 预加载模块入口
*/
module.exports = {
preload
}
上次更新: 2025/04/10, 03:07:49