5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 21:10:54 +08:00
wails/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/cli.mdx
github-actions[bot] 4814e65da2
docs: sync translations (#2685)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-06-03 17:20:10 +10:00

240 lines
19 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_position: 2
---
# 命令行
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 项目文件并静默执行。
可以在 [此处](../guides/ides) 找到有关在 Wails 中使用 IDE 的更多信息。
### 远程模板
支持远程模板(托管在 GitHub )并且可以使用模板项目的 URL 进行安装。
示例: `wails init -n test -t https://github.com/leaanthony/testtemplate[@v1.0.0]`
可以在 [此处](../community/templates.mdx) 找到社区维护的模板列表
:::warning 注意
**Wails 项目不维护也不对第 3 方模板负责**
如果您不确定某个模板,请检查 `package.json` 和 `wails.json` 中安装的模块和运行的脚本。
:::
## 构建
`wails build` 用于将您的项目编译为生产可用的二进制文件。
| 标志 | 描述 | 默认 |
|:--------------- |:------------------------------------------------------------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------- |
| -clean | 清理 `build/bin` 目录 | |
| -compiler "编译器" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go |
| -debug | 在应用程序中保留调试信息。 允许在应用程序窗口中使用 devtools | |
| -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](https://github.com/burrowers/garble) 混淆应用程序 | |
| -platform | 为指定的 [平台](../reference/cli#平台)(逗号分割)构建,例如: `windows/arm64`。 `windows/arm64`。 注意,如果不给出架构,则使用 `runtime.GOARCH`。 | 如果给定环境变量 platform = `GOOS` 否则等于 `runtime.GOOS`。 <br/>如果给定环境变量 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 |
| -webview2 | WebView2 安装策略download,embed,browser,error. | download |
| -windowsconsole | 保留Windows构建控制台窗口 | |
有关 `webview2` 标志的详细描述,请参阅 [Windows 系统指南](../guides/windows)。
如果您更喜欢使用标准 Go 工具进行构建,请参阅 [手动构建指南](../guides/manual-builds)。
示例:
`wails build -clean -o myproject.exe`
:::info
在 Mac 上,应用程序将被绑定到 `Info.plist`,而不是 `Info.dev.plist`。
:::
:::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.
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" | 从给定目录提供资产,而不是使用提供的资产 FS | `wails.json` 中的值 |
| -browser | 在启动时打开浏览器到 `http://localhost:34115` | |
| -compiler "编译器" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go |
| -debounce | 检测到资产更改后等待重新加载的时间 | 100 (毫秒) |
| -devserver "host:port" | 将 wails 开发服务器绑定到的地址 | "localhost:34115" |
| -extensions | 触发重新构建的扩展(逗号分隔) | go |
| -forcebuild | 强制构建应用程序 | |
| -frontenddevserverurl "url" | 使用 3rd 方开发服务器 url 提供资产例如Vite | "" |
| -ldflags "标志" | 传递给编译器的额外 ldflags | |
| -loglevel "日志级别" | 要使用的日志级别 - Trace, Debug, Info, Warning, Error | Debug调试 |
| -nocolour | 关闭彩色命令行输出 | 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 | 跳过 bindings 生成 | |
| -tags "额外标签" | 传递给编译器的构建标签(引号和空格分隔) | |
| -v | 详细级别 (0 - silent, 1 - standard, 2 - verbose) | 1 |
| -wailsjsdir | 生成生成的Wails JS模块的目录 | `wails.json` 中的值 |
示例:
`wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser`
此命令将执行以下操作:
- 构建应用程序并运行它(更多细节在 [这里](../guides/manual-builds)
- 在 `./frontend/src` 中生成 Wails JS 模块
- 监听 `./frontend/dist` 中文件的更新并在更改时重新加载
- 打开浏览器并连接到应用程序
有更多关于在现有框架脚本中使用此功能的 [信息](../guides/application-development.mdx#live-reloading)。
## 生成
### 模板
Wails 使用模板来生成项目。 `wails generate template` 命令有助于构建模板,以使它可以用于生成项目。
| 标志 | 描述 |
|:-------------- |:--------------- |
| -name | 模板名称(必填) |
| -frontend "路径" | 要在模板中使用的前端项目的路径 |
有关创建模板的更多详细信息,请参阅 [模板指南](../guides/templates)。
### 模块
`wails generate module` 命令允许您为应用程序手动生成 `wailsjs` 目录。
## 更新
`wails update` 将更新 Wails CLI 的版本。
| 标志 | 描述 |
|:------------- |:----------- |
| -pre | 更新到最新的预发布版本 |
| -version "版本" | 安装指定版本的 CLI |
## 版本
`wails version` 仅输出当前的 CLI 版本。