--- 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` 用于将您的项目编译为生产可用的二进制文件。 | 标志 | 描述 | 默认 | |:--------------- |:------------------------------------------------------------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------- | | -platform | 为指定的 [平台](../reference/cli#平台)(逗号分割)构建,例如: `windows/arm64`。 `windows/arm64`。 注意,如果不给出架构,则使用 `runtime.GOARCH`。 | 如果给定环境变量 platform = `GOOS` 否则等于 `runtime.GOOS`。
如果给定环境变量 arch = `GOARCH` 否则等于 `runtime.GOARCH`. | | -clean | 清理 `build/bin` 目录 | | | -compiler "编译器" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go | | -ldflags "标志" | 传递给编译器的额外 ldflags | | | -nopackage | 不打包应用程序 | | | -o 文件名 | 输出文件名 | | | -s | 跳过前端构建 | false | | -f | 强制构建应用 | false | | -tags "额外标签" | 构建标签以传递给 Go 编译器。 必须引用。 空格或逗号(但不能同时使用)分隔 | | | -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 | 在应用程序中保留调试信息。 允许在应用程序窗口中使用 devtools | false | | -trimpath | 从生成的可执行文件中删除所有文件系统路径。 | false | | -race | 使用 Go 的竞态检测器构建 | false | | -windowsconsole | 保留Windows构建控制台窗口 | | | -obfuscate | 使用 [garble](https://github.com/burrowers/garble) 混淆应用程序 | false | | -garbleargs | 传递给 garble 的参数 | `-literals -tiny -seed=random` | 有关 `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` 。 | 标志 | 描述 | 默认 | |:---------------------------- |:-------------------------------------------------------------------------------------------------------------------------------- |:----------------- | | -assetdir "./path/to/assets" | 从给定目录提供资产,而不是使用提供的资产 FS | `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 | 资产更改时禁用自动重新加载 | | | -nocolour | 关闭彩色命令行输出 | false | | -nogen | 禁用生成模块 | | | -v | 详细级别 (0 - silent, 1 - standard, 2 - verbose) | 1 | | -wailsjsdir | 生成生成的Wails JS模块的目录 | `wails.json` 中的值 | | -debounce | 检测到资产更改后等待重新加载的时间 | 100 (毫秒) | | -devserver "host:port" | 将 wails 开发服务器绑定到的地址 | "localhost:34115" | | -frontenddevserverurl "url" | 使用 3rd 方开发服务器 url 提供资产,例如:Vite | "" | | -appargs "参数" | 以 shell 样式传递给应用程序的参数 | | | -save | 将指定的 `assetdir`、 `reloaddirs`、 `wailsjsdir`、 `debounce` 、 `devserver` 和 `frontenddevserverurl` 标志的值保存到 `wails.json` 以成为后续调用的默认值。 | | | -race | 使用 Go 的竞态检测器构建 | false | | -s | 跳过前端构建 | false | 示例: `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 版本。