CLI
Wails CLI 有许多用于管理项目的命令。所有命令都以以下方式运行
wails <command> <flags>
init
wails init 用于生成项目。
| 标志 | 描述 | 默认 |
|---|---|---|
| -n "project name" | 项目的名称。必填。 | |
| -d "project dir" | 要创建的项目目录 | 项目的名称 |
| -g | 初始化 git 仓库 | |
| -l | 列出可用的项目模板 | |
| -q | 抑制输出到控制台 | |
| -t "template name" | 要使用的项目模板。可以是默认模板的名称,也可以是 GitHub 上托管的远程模板的 URL。 | vanilla |
| -ide | 生成 IDE 项目文件 vscode 或 goland | |
| -f | 强制构建应用程序 | false |
示例: wails init -n test -d mytestproject -g -ide vscode -q
这将在 "mytestproject" 目录中生成一个名为 "test" 的项目,初始化 git,生成 vscode 项目文件,并在静默模式下执行。
有关使用 IDE 与 Wails 的更多信息,请访问 此处。
远程模板
支持远程模板(托管在 GitHub 上),可以通过使用模板的项目 URL 来安装它们。
示例: wails init -n test -t https://github.com/leaanthony/testtemplate[@v1.0.0]
可以在 此处 找到社区维护的模板列表
Wails 项目不维护,也不对第三方模板负责或承担责任!
如果您不确定某个模板,请检查 package.json 和 wails.json,了解运行了哪些脚本以及安装了哪些包。
build
wails build 用于将您的项目编译成可用于生产的二进制文件。
| 标志 | 描述 | 默认 |
|---|---|---|
| -clean | 清除 build/bin 目录 | |
| -compiler "compiler" | 使用不同的 go 编译器进行构建,例如 go1.15beta1 | go |
| -debug | 在应用程序中保留调试信息并显示调试控制台。允许在应用程序窗口中使用开发者工具 | |
| -devtools | 允许在生产环境中(未使用 -debug 时)在应用程序窗口中使用开发者工具。可以使用 Ctrl/Cmd+Shift+F12 打开开发者工具窗口。注意:此选项将导致您的应用程序无法通过 Mac 应用商店指南。仅用于调试目的。 | |
| -dryrun | 打印构建命令而不执行它 | |
| -f | 强制构建应用程序 | |
| -garbleargs | 要传递给 garble 的参数 | -literals -tiny -seed=random |
| -ldflags "flags" | 要传递给编译器的其他 ldflags | |
| -m | 在编译之前跳过 mod tidy | |
| -nopackage | 不要打包应用程序 | |
| -nocolour | 禁用输出中的颜色 | |
| -nosyncgomod | 不要将 go.mod 与 Wails 版本同步 | |
| -nsis | 为 Windows 生成 NSIS 安装程序 | |
| -o filename | 输出文件名 | |
| -obfuscated | 使用 garble 混淆应用程序 | |
| -platform | 为给定的(逗号分隔)平台 构建,例如 windows/arm64。注意,如果您没有给出体系结构,则使用 runtime.GOARCH。 | platform = 如果给定,则为 GOOS 环境变量,否则为 runtime.GOOS。arch = 如果给定,则为 GOARCH 环境变量,否则为 runtime.GOARCH。 |
| -race | 使用 Go 的竞态检测器构建 | |
| -s | 跳过构建前端 | |
| -skipbindings | 跳过绑定生成 | |
| -tags "extra tags" | 要传递给 Go 编译器的构建标签。必须加引号。用空格或逗号(但不能同时使用)分隔 | |
| -trimpath | 从生成的执行文件中删除所有文件系统路径。 | |
| -u | 更新项目的 go.mod 以使用与 CLI 相同版本的 Wails | |
| -upx | 使用 "upx" 压缩最终二进制文件 | |
| -upxflags | 要传递给 upx 的标志 | |
| -v int | 详细程度级别(0 - 静默,1 - 默认,2 - 详细) | 1 |
| -webview2 | WebView2 安装程序策略:download、embed、browser、error | download |
| -windowsconsole | 保留 Windows 构建的控制台窗口 |
有关 webview2 标志的详细说明,请参阅 Windows 指南。
如果您希望使用标准 Go 工具进行构建,请参阅 手动构建 指南。
示例
wails build -clean -o myproject.exe
在 Mac 上,应用程序将与 Info.plist 捆绑在一起,而不是 Info.dev.plist。
在 Apple Silicon 上使用 UPX 存在一些问题。
一些防病毒软件会错误地将使用 upx 压缩的二进制文件标记为病毒,请参阅问题。
平台
支持的平台为
| 平台 | 描述 |
|---|---|
| darwin | MacOS + 构建机器的体系结构 |
| darwin/amd64 | MacOS 10.13+ AMD64 |
| darwin/arm64 | MacOS 11.0+ ARM64 |
| darwin/universal | MacOS AMD64+ARM64 通用应用程序 |
| windows | Windows 10/11 + 构建机器的体系结构 |
| windows/amd64 | Windows 10/11 AMD64 |
| windows/arm64 | Windows 10/11 ARM64 |
| linux | Linux + 构建机器的体系结构 |
| linux/amd64 | Linux AMD64 |
| linux/arm64 | Linux ARM64 |
doctor
wails doctor 将运行诊断以确保您的系统已准备好进行开发。
示例
Wails CLI v2.0.0-beta
Scanning system - Please wait (this may take a long time)...Done.
System
------
OS: Windows 10 Pro
Version: 2009 (Build: 19043)
ID: 21H1
Go Version: go1.18
Platform: windows
Architecture: amd64
Dependency Package Name Status Version
---------- ------------ ------ -------
WebView2 N/A Installed 93.0.961.52
npm N/A Installed 6.14.15
*upx N/A Installed upx 3.96
* - Optional Dependency
Diagnosis
---------
Your system is ready for Wails development!
dev
wails dev 用于在 "实时开发" 模式下运行您的应用程序。这意味着
- 应用程序的
go.mod将更新为使用与 CLI 相同版本的 Wails - 应用程序将自动编译并运行
- 将启动一个观察器,如果检测到您的 go 文件发生更改,它将触发您的开发应用程序的重建
- 将在
https://:34115上启动一个 Web 服务器,它通过 http 提供您的应用程序(不仅仅是前端)。这允许您使用您最喜欢的浏览器开发扩展 - 所有应用程序资产都从磁盘加载。如果它们发生更改,应用程序将自动重新加载(而不是重建)。所有连接的浏览器也将重新加载
- 将生成一个 JS 模块,它提供以下内容
- Go 方法的 JavaScript 包装器,具有自动生成的 JSDoc,提供代码提示
- Go 结构体的 TypeScript 版本,可以构建并传递给您的 go 方法
- 将生成第二个 JS 模块,它为运行时提供包装器 + TS 声明
- 在 macOS 上,它将应用程序捆绑到
.app文件中并运行它。它将使用build/darwin/Info.dev.plist用于开发。
| 标志 | 描述 | 默认 |
|---|---|---|
| -appargs "args" | 以 shell 风格传递给应用程序的参数 | |
| -assetdir "./path/to/assets" | 从给定目录提供资产,而不是使用提供的资产 FS | wails.json 中的值 |
| -browser | 在启动时打开一个浏览器,连接到 https://:34115 | |
| -compiler "compiler" | 使用不同的 go 编译器进行构建,例如 go1.15beta1 | go |
| -debounce | 检测到资产更改后等待重新加载的时间 | 100(毫秒) |
| -devserver "host:port" | 要绑定 wails 开发服务器的地址 | "localhost:34115" |
| -extensions | 触发重建的扩展(逗号分隔) | go |
| -forcebuild | 强制构建应用程序 | |
| -frontenddevserverurl "url" | 使用第三方开发服务器 URL 提供资产,例如 Vite | "" |
| -ldflags "flags" | 要传递给编译器的其他 ldflags | |
| -loglevel "loglevel" | 要使用的日志级别 - Trace、Debug、Info、Warning、Error | Debug |
| -nocolour | 关闭彩色 CLI 输出 | false |
| -noreload | 禁用资产更改时自动重新加载 | |
| -nosyncgomod | 不要将 go.mod 与 Wails 版本同步 | false |
| -race | 使用 Go 的竞态检测器构建 | false |
| -reloaddirs | 触发重新加载的额外目录(逗号分隔) | wails.json 中的值 |
| -s | 跳过构建前端 | false |
| -save | 将给定的 assetdir、reloaddirs、wailsjsdir、debounce、devserver 和 frontenddevserverurl 标志保存到 wails.json 中,使其成为后续调用的默认值。 | |
| -skipbindings | 跳过绑定生成 | |
| -tags "extra tags" | 要传递给编译器的构建标签(加引号并用空格分隔) | |
| -v | 详细程度级别(0 - 静默,1 - 标准,2 - 详细) | 1 |
| -wailsjsdir | 生成生成的 Wails JS 模块的目录 | wails.json 中的值 |
示例
wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser
此命令将执行以下操作
- 构建应用程序并运行它(更多详细信息 此处
- 在
./frontend/src中生成 Wails JS 模块 - 监视
./frontend/dist中的文件更新,并在任何更改时重新加载 - 打开一个浏览器并连接到应用程序
有关将此功能与现有框架脚本一起使用的更多信息,请点击此处。
generate
template
Wails 使用模板进行项目生成。wails generate template 命令有助于搭建模板,以便可以将其用于生成项目。
| 标志 | 描述 |
|---|---|
| -name | 模板名称(必填) |
| -frontend "path" | 要用于模板的前端项目的路径 |
有关创建模板的更多详细信息,请参阅 模板指南。
module
wails generate module 命令允许您手动为应用程序生成 wailsjs 目录。
| 标志 | 描述 | 默认 |
|---|---|---|
| -compiler "compiler" | 使用不同的 go 编译器进行构建,例如 go1.15beta1 | go |
| -tags "extra tags" | 要传递给编译器的构建标签(加引号并用空格分隔) |
update
wails update 将更新 Wails CLI 的版本。
| 标志 | 描述 |
|---|---|
| -pre | 更新到最新的预发布版本 |
| -version "version" | 安装 CLI 的特定版本 |
version
wails version 将简单地输出当前 CLI 版本。