跳至主要内容
版本: v2.9.0

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 项目文件 vscodegoland
-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.jsonwails.json,了解运行了哪些脚本以及安装了哪些包。

build

wails build 用于将您的项目编译成可用于生产的二进制文件。

标志描述默认
-clean清除 build/bin 目录
-compiler "compiler"使用不同的 go 编译器进行构建,例如 go1.15beta1go
-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.GOARCHplatform = 如果给定,则为 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
-webview2WebView2 安装程序策略:download、embed、browser、errordownload
-windowsconsole保留 Windows 构建的控制台窗口

有关 webview2 标志的详细说明,请参阅 Windows 指南。

如果您希望使用标准 Go 工具进行构建,请参阅 手动构建 指南。

示例

wails build -clean -o myproject.exe

信息

在 Mac 上,应用程序将与 Info.plist 捆绑在一起,而不是 Info.dev.plist

UPX 在 Apple Silicon 上

在 Apple Silicon 上使用 UPX 存在一些问题

UPX 在 Windows 上

一些防病毒软件会错误地将使用 upx 压缩的二进制文件标记为病毒,请参阅问题

平台

支持的平台为

平台描述
darwinMacOS + 构建机器的体系结构
darwin/amd64MacOS 10.13+ AMD64
darwin/arm64MacOS 11.0+ ARM64
darwin/universalMacOS AMD64+ARM64 通用应用程序
windowsWindows 10/11 + 构建机器的体系结构
windows/amd64Windows 10/11 AMD64
windows/arm64Windows 10/11 ARM64
linuxLinux + 构建机器的体系结构
linux/amd64Linux AMD64
linux/arm64Linux 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"从给定目录提供资产,而不是使用提供的资产 FSwails.json 中的值
-browser在启动时打开一个浏览器,连接到 http://localhost:34115
-compiler "compiler"使用不同的 go 编译器进行构建,例如 go1.15beta1go
-debounce检测到资产更改后等待重新加载的时间100(毫秒)
-devserver "host:port"要绑定 wails 开发服务器的地址"localhost:34115"
-extensions触发重建的扩展(逗号分隔)go
-forcebuild强制构建应用程序
-frontenddevserverurl "url"使用第三方开发服务器 URL 提供资产,例如 Vite""
-ldflags "flags"要传递给编译器的其他 ldflags
-loglevel "loglevel"要使用的日志级别 - Trace、Debug、Info、Warning、ErrorDebug
-nocolour关闭彩色 CLI 输出false
-noreload禁用资产更改时自动重新加载
-nosyncgomod不要将 go.mod 与 Wails 版本同步false
-race使用 Go 的竞态检测器构建false
-reloaddirs触发重新加载的额外目录(逗号分隔)wails.json 中的值
-s跳过构建前端false
-save将给定的 assetdirreloaddirswailsjsdirdebouncedevserverfrontenddevserverurl 标志保存到 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.15beta1go
-tags "extra tags"要传递给编译器的构建标签(加引号并用空格分隔)

update

wails update 将更新 Wails CLI 的版本。

标志描述
-pre更新到最新的预发布版本
-version "version"安装 CLI 的特定版本

version

wails version 将简单地输出当前 CLI 版本。