Skip to content

打包成独立可执行文件 ​

packager(仓库 packager/ 目录,自带帮助里的命令名是 jsbuild) 把入口脚本及其相对 import 的模块嵌入一个生成的 Go 工程,编译成自带完整运行时的单文件程序 —— 目标机器不需要装 Gox、Go 或任何运行时:

bash
go run ./packager app.js -o app.exe                    # CLI 应用
go run ./packager counter.js --gui -o counter.exe      # GUI 应用
go run ./packager app.js --gui --target linux/amd64    # 纯 Go 交叉编译
选项说明
-o, --out <path>输出文件路径(默认:<输入文件名>.exe;非 Windows 目标默认不带 .exe)
--name <name>应用名,用于错误信息显示,默认取输入文件名
--windowed窗口模式:不显示控制台窗口(仅 Windows)
--guiGUI 应用:窗口消息泵事件循环(配合 gx/gfx render)
--target <os>/<arch>交叉编译目标:windows / linux / darwin × amd64 / arm64 / 386
-v, --verbose显示构建过程输出

交叉编译零负担

整个运行时是纯 Go(无 cgo),所以 --target linux/amd64 在 Windows 上也能直接编,不需要目标机的交叉工具链。

各平台的分发注意事项(Windows 图标与签名、Linux 打包格式、macOS .app bundle)见 docs/desktop-distribution.md。

Apache License 2.0 · 用 ❤ 和 Go 编写