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 文件发生更改,它将触发您的开发应用程序的重建
- 将在
http://localhost: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 | 在启动时打开一个浏览器,连接到 http://localhost: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 版本。