---
sidebar_position: 2
---

# 命令行

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 项目文件并静默执行。

可以在[此处](../guides/ides)找到有关在 Wails 中使用 IDE 的更多信息。

### 远程模板

支持远程模板（托管在 GitHub 上）并且可以使用模板项目的 URL 进行安装。

示例： `wails init -n test -t https://github.com/leaanthony/testtemplate[@v1.0.0]`

可以在[此处](../community/templates)找到社区维护的模板列表

:::warning 注意

  **Wails 项目不维护也不对第 3 方模板负责**

  如果您不信任某个模板，请检查 `package.json` 和 `wails.json` 中安装的模块和运行的脚本。

:::

## 构建

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

| 标志                   | 描述                                                                                                                           | 默认                          |
|:-------------------- |:---------------------------------------------------------------------------------------------------------------------------- |:--------------------------- |
| -platform            | 为指定的[平台](../reference/cli#平台)（逗号分割）构建，例如：`windows/arm64`。 `windows/arm64`. `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 系统](../guides/windows)指南。

如果您更喜欢使用标准 Go 工具进行构建，请参阅[手动构建](../guides/manual-builds)指南。

示例：

`wails build -clean -o myproject.exe`

:::info 苹果芯片上的 UPX

  在苹果芯片上使用 UPX 相关的[问题](https://github.com/upx/upx/issues/446)。

:::

:::info Windows 上的 UPX

  一些防病毒软件供应商误将`upx`压缩的二进制文件标记为病毒，请查看相关[问题](https://github.com/upx/upx/issues/437)。

:::

### 平台

支持的平台有：

| 平台               | 描述                                            |
|:---------------- |:--------------------------------------------- |
| 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`

此命令将执行以下操作：

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

[此处](../guides/application-development)提供了有关将此功能与现有框架脚本一起使用的更多信息。

## 生成

### 模板

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

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

有关创建模板的更多详细信息，请参阅[模板指南](../guides/templates)。

### module

`wails update` 将更新 Wails CLI 的版本。

## 更新

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

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


## 版本

`wails version` will simply output the current CLI version.
