跳到主要内容
版本:v2.8.0

命令行

Wails CLI 有许多用于管理项目的命令。 所有命令都以此方式运行:

wails <命令> <标志>

初始化

wails init 用于生成项目。

标志描述默认
-n "项目名称"项目名称。 强制必填
-d "项目目录"要创建的项目目录项目名
-g初始化 git 存储库
-l可用项目模板列表
-q禁止输出到控制台
-t "模板名称"要使用的项目模板。 这可能是默认模板的名称或托管在 github 上的远程模板的 URL 。vanilla
-ide生成 IDE 项目文件
-f强制构建应用false

示例: 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.jsonwails.json 中安装的模块和运行的脚本。

构建

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

标志描述默认
-clean清理 build/bin 目录
-compiler "编译器"使用不同的 go 编译器来构建,例如 go1.15beta1go
-debugRetains debug information in the application and shows the debug console. 允许在应用程序窗口中使用 devtools
-devtoolsAllows the use of the devtools in the application window in production (when -debug is not used). Ctrl/Cmd+Shift+F12 may be used to open the devtools window. NOTE: This option will make your application FAIL Mac appstore guidelines. Use for debugging only.
-dryrun打印构建命令但不执行它
-f强制构建应用
-garbleargs传递给 garble 的参数-literals -tiny -seed=random
-ldflags "标志"传递给编译器的额外 ldflags
-m编译前跳过 mod tidy
-nopackage不打包应用程序
-nocolour在输出中禁用颜色
-nosyncgomod不同步 go.mod 中的 Wails 版本
-nsis为 Windows 生成 NSIS 安装程序
-o 文件名输出文件名
-obfuscated使用 garble 混淆应用程序
-platform为指定的 平台(逗号分割)构建,例如: windows/arm64windows/arm64。 注意,如果不给出架构,则使用 runtime.GOARCH如果给定环境变量 platform = GOOS 否则等于 runtime.GOOS
如果给定环境变量 arch = GOARCH 否则等于 runtime.GOARCH.
-race使用 Go 的竞态检测器构建
-s跳过前端构建
-skipbindings跳过 bindings 生成
-tags "额外标签"构建标签以传递给 Go 编译器。 必须引用。 空格或逗号(但不能同时使用)分隔
-trimpath从生成的可执行文件中删除所有文件系统路径。
-u更新项目的 go.mod 以使用与 CLI 相同版本的 Wails
-upx使用 “upx” 压缩最终二进制文件
-upxflags传递给 upx 的标志
-v int详细级别 (0 - silent, 1 - default, 2 - verbose)1
-webview2WebView2 安装策略:download,embed,browser,error.download
-windowsconsole保留Windows构建控制台窗口

有关 webview2 标志的详细描述,请参阅 Windows 系统指南

如果您更喜欢使用标准 Go 工具进行构建,请参阅 手动构建指南

示例:

wails build -clean -o myproject.exe

信息

在 Mac 上,应用程序将被绑定到 Info.plist,而不是 Info.dev.plist

苹果芯片上的 UPX

在苹果芯片上使用 UPX 相关的 问题

Windows 上的 UPX

一些防病毒软件供应商误将 upx 压缩的二进制文件标记为病毒,请查看相关 问题

平台

支持的平台有:

平台描述
darwinMacOS + architecture of build machine
darwin/amd64MacOS 10.13+ AMD64
darwin/arm64MacOS 11.0+ ARM64
darwin/universalMacOS AMD64+ARM64 universal application
windowsWindows 10/11 + architecture of build machine
windows/amd64Windows 10/11 AMD64
windows/arm64Windows 10/11 ARM64
linuxLinux + architecture of build machine
linux/amd64Linux AMD64
linux/arm64Linux ARM64

诊断检查

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!

开发

wails dev 用于以 "实时开发" 模式运行您的应用。 这意味着:

  • 应用程序的 go.mod 将被更新为与 Wails CLI 相同的版本
  • 应用程序被编译并自动运行
  • 一个观察者被启动,如果它检测到您的 go 文件的变化,它将触发您的开发应用程序的重新构建
  • 启动一个网络服务器 http://localhost:34115,通过 http 为您的应用程序(不仅仅是前端)提供服务。 这允许您使用您喜欢的浏览器开发扩展
  • 所有应用程序资源都从磁盘加载。 如果它们被更改,应用程序将自动重新加载(而不是重新构建)。 所有连接的浏览器也将重新加载
  • 生成的 JS 模块提供以下内容:
  • 带有自动生成的 JSDoc 的 Go 方法的 JavaScript 包装器,提供代码提示
  • 您的 Go 结构的 TypeScript 版本,可以构建并传递给您的 go 方法
  • 生成第二个 JS 模块,为运行时提供包装器 + TS 声明
  • 在 macOS 上,它将应用程序捆绑到一个 .app 文件中并运行它。 开发模式将使用 build/darwin/Info.dev.plist
标志描述默认
-appargs "参数"以 shell 样式传递给应用程序的参数
-assetdir "./path/to/assets"从给定目录提供资产,而不是使用提供的资产 FSwails.json 中的值
-browser在启动时打开浏览器到 http://localhost:34115
-compiler "编译器"使用不同的 go 编译器来构建,例如 go1.15beta1go
-debounce检测到资产更改后等待重新加载的时间100 (毫秒)
-devserver "host:port"将 wails 开发服务器绑定到的地址"localhost:34115"
-extensions触发重新构建的扩展(逗号分隔)go
-forcebuild强制构建应用程序
-frontenddevserverurl "url"使用 3rd 方开发服务器 url 提供资产,例如:Vite""
-ldflags "标志"传递给编译器的额外 ldflags
-loglevel "日志级别"要使用的日志级别 - Trace, Debug, Info, Warning, ErrorDebug(调试)
-nocolour关闭彩色命令行输出false
-noreload资产更改时禁用自动重新加载
-nosyncgomod不同步 go.mod 中的 Wails 版本false
-race使用 Go 的竞态检测器构建false
-reloaddirs触发重新加载的附加目录(逗号分隔)wails.json 中的值
-s跳过前端构建false
-save将指定的 assetdirreloaddirswailsjsdirdebouncedevserverfrontenddevserverurl 标志的值保存到 wails.json 以成为后续调用的默认值。
-skipbindings跳过 bindings 生成
-tags "额外标签"传递给编译器的构建标签(引号和空格分隔)
-v详细级别 (0 - silent, 1 - standard, 2 - verbose)1
-wailsjsdir生成生成的Wails JS模块的目录wails.json 中的值

示例:

wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser

此命令将执行以下操作:

  • 构建应用程序并运行它(更多细节在 这里
  • ./frontend/src 中生成 Wails JS 模块
  • 监听 ./frontend/dist 中文件的更新并在更改时重新加载
  • 打开浏览器并连接到应用程序

有更多关于在现有框架脚本中使用此功能的 信息

生成

模板

Wails 使用模板来生成项目。 wails generate template 命令有助于构建模板,以使它可以用于生成项目。

标志描述
-name模板名称(必填)
-frontend "路径"要在模板中使用的前端项目的路径

有关创建模板的更多详细信息,请参阅 模板指南

模块

wails generate module 命令允许您为应用程序手动生成 wailsjs 目录。

更新

wails update 将更新 Wails CLI 的版本。

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

版本

wails version 仅输出当前的 CLI 版本。