手动打包教程
手动打包教程
本文档说明如何从源码构建 MLiev IAM 可执行文件。
前置条件
| 工具 | 版本 | 用途 |
|---|---|---|
| Go | 1.25+ | 后端编译 |
| Node.js | 22+ | 前端编译 |
| pnpm | 最新版 | 前端包管理 |
| Make | - | 构建自动化 |
构建命令
完整构建(推荐)
# 构建前端 + 后端
make all执行过程:
- 构建
@vben-core核心包 - 构建 web-oidc →
static/auth/ - 构建 web-antd →
static/admin/ - 编译 Go 二进制文件
mliev-iam
仅构建后端
make build-go
# 等效于:go build -o mliev-iam .注意:仅构建后端时,如果
static/目录没有前端构建产物,管理后台和登录页面将不可用。
仅构建前端
# 构建所有前端应用(自动处理依赖顺序)
make build-frontend
# 或单独构建
make build-oidc # OIDC 登录页 → static/auth/
make build-antd # 管理后台 → static/admin/
make build-install # 安装向导 → static/install/安装前端依赖
make install-frontend跨平台编译
使用 GoReleaser 进行跨平台编译:
make release生成的文件位于 dist/ 目录,支持以下平台:
Unix 系统(tar.gz):
- Linux: amd64, arm64, arm (v5/v6/v7), loong64
- macOS: amd64 (Intel), arm64 (Apple Silicon)
Windows(zip):
- amd64, arm64
所有二进制文件均为静态链接(CGO_ENABLED=0),无外部依赖。
构建参数
Go 构建使用以下优化标志:
-s -w # 去除调试信息,减小体积
-extldflags "-static" # 静态链接(Unix)
-X main.version=... # 嵌入版本信息
-X main.commit=... # 嵌入提交哈希构建标签:netgo, osusergo(确保使用纯 Go 网络和用户查找实现)。
清理构建产物
make clean # 清理所有
make clean-go # 仅清理 Go 二进制
make clean-oidc # 仅清理 OIDC 前端
make clean-antd # 仅清理管理后台前端
make clean-packages # 仅清理核心包