命令行
Wails CLI 有许多用于管理项目的命令。 所有命令都以此方式运行:
wails <命令> <标志>
初始化
wails init 用于生成项目。
| 标志 | 描述 | 默认 |
|---|---|---|
| -n "项目名称" | 项目名称。 强制必填 | |
| -d "项目目录" | 要创建的项目目录 | 项目名 |
| -g | 初始化 git 存储库 | |
| -l | 可用项目模板列表 | |
| -q | 禁止输出到控制台 | |
| -t "模板名称" | 要使用的项目模板。 这可能是默认模板的名称或在 github 上托管的远程模板的 URL 。 | vanilla |
| -ide | 生成 IDE 项目文件 | |
| -f | 强制构建应用 | 否 |
示例: wails init -n test -d mytestproject -g -ide vscode -q
这将在 "mytestproject" 目录生成一个名为 "test" 的项目,初始化 git,生成 vscode 项目文件并静默执行。
可以在此处找到有关在 Wails 中使用 IDE 的更多信息。
远程模板
支持远程模板(托管在 GitHub 上)并且可以使用模板项目的 URL 进行安装。
示例: wails init -n test -t https://github.com/leaanthony/testtemplate[@v1.0.0]
可以在此处找到社区维护的模板列表
Wails 项目不维护也不对第 3 方模板负责
如果您不信任某个模板,请检查 package.json 和 wails.json 中安装的模块和运行的脚本。
构建
wails build用于将您的项目编译为生产可用的二进制文件。
| 标志 | 描述 | 默认 |
|---|---|---|
| -platform | 为指定的平台(逗号分割)构建,例如:windows/arm64。 windows/arm64. windows/arm64. 注意,如果没有指定架构,则使用runtime.GOARCH。 windows/arm64. 注意,如果没有指定架构,则使用runtime.GOARCH。 | runtime.GOOS/runtime.GOARCH |
| -clean | 清理build/bin目录 | |
| -compiler "编译器" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go |
| -ldflags "标志" | 传递给编译器的额外 ldflags | |
| -nopackage | 不打包应用程序 | |
| -o filename | 输出文件名 | |
| -s | 跳过前端构建 | 否 |
| -f | 强制构建应用 | 否 |
| -tags "额外标签" | 传递给编译器构建标签(引号和空格分隔) | |
| -upx | 使用“upx”压缩最终二进制文件 | |
| -upxflags | 传递给 upx 的标志 | |
| -v int | 详细级别 (0 - silent, 1 - default, 2 - verbose) | 1 |
| -webview2 | WebView2 安装程序策略:download,embed,browser,error. | download |
| -u | 更新项目的 go.mod 以使用与 CLI 相同版本的 Wails | |
| -debug | 在应用程序中保留调试信息 在应用程序中保留调试信息 Allows the use of the devtools in the application window | 否 |
| -trimpath | Remove all file system paths from the resulting executable. | 否 |
| -race | Build with Go's race detector | 否 |
| -platform "platform" | Keep the console window for Windows builds | 否 |
有关webview2标志的详细描述,请参阅Windows 系统指南。
如果您更喜欢使用标准 Go 工具进行构建,请参阅手动构建指南。
示例:
wails build -clean -o myproject.exe
在苹果芯片上使用 UPX 相关的问题。
一些防病毒软件供应商误将upx压缩的二进制文件标记为病毒,请查看相关问题。
平台
支持的平台有:
| 平台 | 描述 |
|---|---|
| darwin | MacOS + architecture of build machine |
| darwin/amd64 | MacOS 10.13+ AMD64 |
| darwin/arm64 | MacOS 11.0+ ARM64 |
| darwin/universal | MacOS AMD64+ARM64 universal application |
| windows | Windows 10/11 + architecture of build machine |
| windows/amd64 | Windows 10/11 AMD64 |
| windows/arm64 | Windows 10/11 ARM64 |
| linux | Linux + architecture of build machine |
| linux/amd64 | Linux AMD64 |
| linux/arm64 | Linux ARM64 |
诊断检查
wails doctor 将运行诊断程序以确保您的系统已准备好进行开发。
示例:
Wails CLI v2.0.0-beta
Scanning system - Please wait (this may take a long time)...Done.
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.17
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
*docker N/A Installed 20.10.6
* - Optional Dependency
Diagnosis
---------
Your system is ready for Wails development!
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.17
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
*docker N/A Installed 20.10.6
* - Optional Dependency
Diagnosis
---------
Your system is ready for Wails development!
开发
wails dev 用于以 "实时开发" 模式运行您的应用。 这意味着:
- 应用程序的
go.mod将被更新为与 Wails CLI 版本相同的版本 - 应用程序被编译并自动运行
- 一个观察者被启动,如果它检测到您的 go 文件的变化,它将触发您的开发应用程序的重新构建
- 启动一个网络服务器
http://localhost:34115,通过 http 为您的应用程序(不仅仅是前端)提供服务。 这允许您使用您喜欢的浏览器开发扩展 - 所有应用程序资源都从磁盘加载。 如果它们被更改,应用程序将自动重新加载(而不是重新构建)。 所有连接的浏览器也将重新加载
- 生成的 JS 模块提供以下内容:
- 带有自动生成的 JSDoc 的 Go 方法的 Javascript 包装器,提供代码提示
- 您的 Go 结构体的 TypeScript 版本,可以构造并传递给您的 Go 方法
- 生成第二个 JS 模块,为运行时提供包装器 + TS 声明
| 标志 | 描述 | 默认 |
|---|---|---|
| -assetdir "./path/to/assets" | 编译资源的路径 | wails.json中的值 |
| -browser | 在启动时打开浏览器到http://localhost:34115 | |
| -compiler "编译器" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go |
| -e | 触发重新构建的扩展(逗号分隔) | go |
| -reloaddirs | 触发重新加载的附加目录(逗号分隔) | wails.json中的值 |
| -ldflags "标志" | 传递给编译器的额外 ldflags | |
| -tags "额外标签" | 传递给编译器构建标签(引号和空格分隔) | |
| -loglevel "日志级别" | 要使用的日志级别 - Trace, Debug, Info, Warning, Error | Debug |
| -noreload | 资源更改时禁用自动重新加载 | |
| -nogen | 详细级别 (0 - silent, 1 - standard, 2 - verbose) | |
| -v | 生成生成的 Wails JS 模块的目录 | 1 |
| -wailsjsdir | 检测到资源更改后等待重新加载的时间 | wails.json中的值 |
| -debounce | 将 wails 开发服务器绑定到的地址 | "http://localhost:34115" |
| -frontenddevserverurl "url 地址" | 使用第三方开发服务器提供资源,比如 Vite | "localhost:34115" |
| -frontenddevserverurl "url" | 以 shell 样式传递给应用程序的参数 | "" |
| -appargs "args" | 目标平台/架构 | |
| -save | 将指定的 assetdir、 reloaddirs、 wailsjsdir、 debounce 、 devserver 和 frontenddevserverurl 标志的值保存到 wails.json 以成为后续调用的默认值。 | |
| -race | Build with Go's race detector | 否 |
| -s | 跳过前端构建 | 否 |
示例:
wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser
此命令将执行以下操作:
- 构建应用程序并运行它(更多细节在这里)
- 在
./frontend/src中生成 Wails JS 模块 - 监听
./frontend/dist中文件的更新并在更改时重新加载 - 打开浏览器并连接到应用程序
此处提供了有关将此功能与现有框架脚本一起使用的更多信息。
生成
模板
Wails 使用模板来生成项目。 wails generate template命令有助于构建模板,以使它可以用于生成项目。
| 标志 | 描述 |
|---|---|
| -name | 模板名称(必填) |
| -frontend "路径" | 要在模板中使用的前端项目的路径 |
有关创建模板的更多详细信息,请参阅模板指南。
module
wails update 将更新 Wails CLI 的版本。
更新
wails version 仅输出当前的 CLI 版本。
| 标志 | 描述 |
|---|---|
| -pre | 更新到最新的预发布版本 |
| -version "版本" | 安装指定版本的 CLI |
版本
wails version will simply output the current CLI version.