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

手动构建

Wails CLI 为项目做了很多繁重的工作,但有时需要手动构建项目。 本文档将讨论 CLI 执行的不同操作以及如何以不同方式实现这一点。

构建过程

当使用 wails buildwails dev 时,Wails CLI 会执行一个通用的构建过程:

- 安装前端依赖
- 构建前端项目
- 生成构建资产
- 编译应用程序
- [可选]压缩应用程序

安装前端依赖

命令行步骤

  • 如果给出了 -s 标志,则跳过此步骤
  • 检查 wails.json 中是否有安装命令 frontend:install
  • 如果没有,则跳过此步骤
  • 如果有,则检查前端目录中是否存在 package.json。 如果不存在,则跳过这一步
  • package.json 文件内容生成 MD5
  • 检查 package.json.md5 是否存在,如果存在,则将其内容(MD5 sum)与生成的内容进行比较,以查看内容是否已更改。 如果相同,则跳过此步骤
  • 如果 package.json.md5 不存在,则使用生成的 MD5 并创建它
  • 如果现在需要构建,或者 node_modules 不存在,或者给出了-f 标志,则在前端目录中执行安装命令

手动步骤

这一步可以从命令行或带有 npm install 的前端脚本完成.

构建前端项目

Wails 命令行

  • 如果给出了 -s 标志,则跳过此步骤
  • 检查 wails.json 中是否有构建命令 frontend:build
  • 如果没有,则跳过此步骤
  • 如果有,就在 frontend 目录下执行它

手动步骤

这一步可以从命令行或带有前端构建脚本 npm run build 的脚本或任何前端构建脚本完成。

生成资产

Wails 命令行

  • 如果设置了-nopackage 标志,则跳过此阶段
  • 如果 build/appicon.png 文件不存在,则创建一个默认文件
  • 对于 Windows,请参阅 Windows
  • 如果 build/windows/icon.ico 不存在,它将从 build/appicon.png 图像创建它。
Windows
  • 如果 build/windows/icon.ico 不存在,它将从 build/appicon.png 创建 256、128、64、48、32 和 16 大小的图标。 这是使用 winicon 完成的。
  • 如果 build/windows/<projectname>.manifest 文件不存在,它会从默认版本创建它。
  • 将应用程序编译为生产版本(如上所述)。
  • 使用 winres 将 icon 和 manifest 打包到一个 .syso 文件。

手动步骤

  • 使用winicon命令行工具或者其他工具创建icon.ico
  • 为您的应用程序创建或者更新 .manifest 文件
  • 使用 winres 命令行 生成一个 .syso 文件

编译应用程序

Wails 命令行

  • 如果提供了 -clean 标志,则删除并重新创建 build 目录
  • 对于 wails dev,使用以下默认 Go 标志:-tags dev -gcflags "all=-N -l"
  • 对于 wails build,使用以下默认 Go 标志:-tags desktop,production -ldflags "-w -s"
    • 在 Windows 上,是 -ldflags "-w -h -H windowsgui"
  • 传递给 CLI 的附加标签使用 -tags 添​​加到默认值中
  • 传递给 CLI 的附加 ldflags-ldflags 添加到默认值
  • 传递 -o 标志
  • 将使用指定的 Go 编译器 -compiler 进行编译

手动步骤

  • 对于 dev 构建,最少的命令是:go build -tags dev -gcflags "all=-N -l"
  • 对于生产构建,最少的命令是:go build -tags desktop,production -ldflags "-w -s -H windowsgui"
  • 确保在与 .syso 文件相同的目录中进行编译

压缩应用程序

Wails 命令行

  • 如果 -upx 已给出标志,将运行 upx 程序以使用默认设置压缩应用程序
  • 如果也传递了 -upxflags 标志,则使用这些标志而不是默认

手动步骤

  • 手动运行 upx [flags] 以压缩应用程序。