手动构建
Wails CLI 为项目做了很多繁重的工作,但有时需要手动构建项目。 本文档将讨论 CLI 执行的不同操作以及如何以不同方式实现这一点。
构建过程
当使用 wails build
或 wails 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"
- 在 Windows 上,是
- 传递给 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]
以压缩应用程序。