GoDesk 基于Wails2+Vue+Go实现的桌面应用快速开发模板。集成了GinWeb服务、文件上传下载和预览、SQLite数据库操作、应用日志、Windows API使用、系统壁纸设置、Go代码调用、DLL文件使用、ElementUI、Vue 路由、登录、菜单组件等。
下载体验版[github]:https://github.com/xbuntu/godesk/releases
下载体验版[gitee]:https://gitee.com/xbuntu/godesk/releases
GoDesk 模板只提供了wails部分功能的实现方法,实现更多功能
可参考 wails 官方开发手册:https://wails.io/zh-Hans/docs/gettingstarted/installation/
Wails 有许多安装前需要的常见依赖项:
- Go 1.18+
- NPM (Node 15+)
- 安装 go
- 配置 go 环境变量(参考)
#/opt/go 替换成 go 安装目录
export GOROOT=/opt/go
export GOPATH=/opt/go/path
export GOBIN=$GOPATH/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE=*.gitlab.com,*.gitee.com,*.github.com
export GOSUMDB=sum.golang.google.cn
export PATH=$PATH:$GOROOT/bin:$GOBIN
go install github.com/wailsapp/wails/v2/cmd/wails@latest
- 安装 nodejs
Linux 或 Mac 系统构建时,须要保证目录文件有操作权限。再进行编译。官方文档:https://wails.io/zh-Hans/docs/reference/cli
#如果 frontend/wailsjs 目录不存在,先执行如下命令
wails generate module
#如果首次打包提示 dist目录不存在,先执行下面命令
cd frontend
npm i
npm run build
#检测
wails doctor
#调试
wails dev
#调试遇到错误: failed to find Vite server URL,解决办法:通过指定 frontenddevserverurl 参数
wails dev -frontenddevserverurl "http://localhost:8080"
#打包 .exe
wails build
#打包 .exe 带安装步骤
wails build -nsis -upx
Mac系统 和 Linux系统兼容问题,可使用如下方法解决:
- 以linux系统为例,可在go代码文件的第一行,加上 //go:build linux 注释,代表当前文件在 linux 环境下有效
- 调试时,可使用:wails dev 命令查看运行错误信息
- 前端可使用 localStorage.getItem("os") 获取操作系统类型,做相应的适配
- 官方手册:https://wails.io/zh-Hans/docs/guides/manual-builds
#生成带安装步骤的程序
wails build -nsis
#生成带安装步骤且压缩过的程序
wails build -nsis -upx
- 打包
- 移动可执行文件到指定目录
cp build/bin/GoDesk build/linux/GoDesk/usr/local/bin
- 打包成deb
dpkg-deb --build build/linux/GoDesk
- 安装
dpkg -i GoDesk.deb
- 打包
- 创建 mac 应用程序所在目录的软链接
sudo ln -s /Applications build/bin/Applications
- 将目录 build/bin 下的 GoDesk.app 和 Applications 一起压缩成 .zip 文件
- 安装
sudo xattr -d com.apple.quarantine /Applications/GoDesk.app
# 使用go build -ldflags "-s -w -H=windowsgui" 生成一个不带cmd窗口的exe文件
go build -ldflags "-s -w -H=windowsgui"
-s 省略符号表和调试信息
-w Omit the DWARF symbol table 省略DWARF符号表
-H windowsgui 不打印信息到console (On Windows, -H windowsgui writes a "GUI binary" instead of a "console binary."),就不会有cmd窗口了
- Windows 10/11 AMD64/ARM64
- MacOS 10.13+ AMD64
- MacOS 11.0+ ARM64
- Linux AMD64/ARM64
-
wails 使用 Go 构建漂亮的跨平台应用程序
-
npm Vue包检索网站
-
vue 用于构建用户界面的 JavaScript 框架
-
Element UI 一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库
-
upx 用于压缩您的应用程序
-
NSIS 用于生成 Windows 安装程序
-
Gorm go语言orm框架
-
GoFrame 一款模块化、高性能、企业级的Go基础开发框架。
-
Gin Go最快的全功能web框架
-
golang中文网 go学习交流平台
-
TDM-GCC windows系统 gcc 编译环境
- 您可以 Star 支持本项目。