mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 21:10:54 +08:00
240 lines
19 KiB
Plaintext
240 lines
19 KiB
Plaintext
---
|
||
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 版本。
|