Wails是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。
将Wails看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能,结合丰富的现代前端,轻松的构建应用程序。
Wails功能
- 原生菜单、对话框、主题和半透明
- Windows、macOS 和 linux 支持
- 内置 Svelte、React 、Preact 、Vue、Lit 和 Vanilla JS 的模板
- 从 JavaScript 轻松调用 Go 方法
- 自动将 Go 结构体转换为 TypeScript 模块
- Windows 上不需要 CGO 或外部 DLL
- 使用 Vite 的实时开发模式
- 可以轻松创建、构建和打包应用的强大命令行工具
- 丰富的 运行时库
- 使用 Wails 构建的应用程序兼容 Apple & Microsoft 商店
Wails依赖下载及安装
- Go语言下载安装 https://studygolang.com/dl
- NodeJS下载安装 https://nodejs.org/en/download/
- windows平台依赖WebView2下载安装,安装后可以用
wails doctor
命令检查https://developer.microsoft.com/en-us/microsoft-edge/webview2/?form=MA13LH - UPX是一款免费、安全、可移植、可扩展、高性能的 可执行加壳程序,适用于多种可执行格式。UPX是一种先进的可执行文件压缩器。UPX 通常会将程序和 DLL 的文件大小减少约 50%-70%,从而减少磁盘空间、网络加载时间、下载时间以及其他分发和存储成本。下载安装 https://upx.github.io/或https://github.com/upx/upx/releases/latest,或者我的网盘链接:https://pan.baidu.com/s/1BRBUYxo5B-aTkrBzPGojGA 提取码:imhy
- NSIS(Nullsoft Scriptable Install System)是一个专业的开源系统,用于创建 Windows 安装程序。如果手动安装 NSIS,则需要将 NSIS 安装目录中包含 makensis.exe 的 Bin 目录添加到 PATH 中。下载安装 https://nsis.sourceforge.io/Main_Page或者我的网盘链接:https://pan.baidu.com/s/1U2PV7PNwktyEhaoo2ORAhw 提取码:589v
运行go install github.com/wailsapp/wails/v2/cmd/wails@latest
,安装 Wails CLI。
最后,运行wails doctor
命令,检查是否安装了正确的依赖项。如果缺少,它会就缺少的内容提供建议,以帮助纠正问题。
如果是哪个命令不可用,那就是对应的应用程序没有加入到环境变量中。
项目生成
现在 CLI 已安装,您可以使用 wails init
命令生成一个新项目。
选择您最喜欢的框架:
Svelte
使用 JavaScript 生成一个 Svelte 项目:
0 |
wails init -n myproject -t svelte |
如果您更愿意使用 TypeScript:
0 |
wails init -n myproject -t svelte-ts |
React
使用 JavaScript 生成一个 React 项目:
0 |
wails init -n myproject -t react |
如果您更愿意使用 TypeScript:
0 |
wails init -n myproject -t react-ts |
Vue
使用 JavaScript 生成一个 Vue 项目:
0 |
wails init -n myproject -t vue |
如果您更愿意使用 TypeScript:
0 |
wails init -n myproject -t vue-ts |
Preact
使用 JavaScript 生成一个 Preact 项目:
0 |
wails init -n myproject -t preact |
如果您更愿意使用 TypeScript:
0 |
wails init -n myproject -t preact-ts |
Lit
使用 JavaScript 生成一个 Lit 项目:
0 |
wails init -n myproject -t lit |
如果您更愿意使用 TypeScript:
0 |
wails init -n myproject -t lit-ts |
Vanilla
使用 JavaScript 生成一个 Vanilla 项目:
0 |
wails init -n myproject -t vanilla |
如果您更愿意使用 TypeScript:
0 |
wails init -n myproject -t vanilla-ts |
还有提供不同功能和框架的 社区模板。
要查看其他可用选项,您可以运行 wails init -help
。 更多详细信息可以在 初始化命令 中找到。
项目布局
Wails 项目有以下布局:
0 1 2 3 4 5 6 7 8 9 |
. ├── build/ │ ├── appicon.png │ ├── darwin/ │ └── windows/ ├── frontend/ ├── go.mod ├── go.sum ├── main.go └── wails.json |
项目结构概要
/main.go
- 主应用/frontend/
- 前端项目文件/build/
- 项目构建目录/build/appicon.png
- 应用程序图标/build/darwin/
- Mac 特定的项目文件/build/windows/
- Windows 特定的项目文件/wails.json
- 项目配置/go.mod
- Go module 文件/go.sum
- Go module 校验文件
frontend
目录没有特定于 Wails 的内容,可以是您选择的任何前端项目。
build
目录在构建过程中使用。 这些文件可以修改以自定义您的构建。 如果从 build 目录中删除文件,将重新生成默认版本。
go.mod
中的默认模块名称是“changeme”。 您应该将其更改为更合适的内容。
运行Wails项目
从项目目录运行 wails dev
在开发模式下运行您的应用程序。 这将执行以下操作:
- 构建您的应用程序并运行它
- 将您的 Go 代码绑定到前端,以便可以从 JavaScript 调用它
- 使用 Vite 的强大功能,将监视您的 Go 文件中的修改并在更改时重新构建/重新运行
- 启动一个 网络服务器 通过浏览器为您的应用程序提供服务。 这使您可以使用自己喜欢的浏览器扩展。 你甚至可以从控制台调用你的 Go 代码。
首先,在项目目录中运行 wails dev
。 可以在 此处 找到有关这方面的更多信息。