手动构建
Wails CLI 为项目做了很多繁重的工作,但有时手动构建项目是可取的。本文档将讨论 CLI 执行的不同操作以及如何以不同的方式实现这些操作。
构建过程
使用 wails build
或 wails dev
时,Wails CLI 会执行一个通用的构建过程
- Install frontend dependencies
- Build frontend project
- Generate build assets
- Compile application
- [optional] Compress application
安装前端依赖项
CLI 步骤
- 如果提供
-s
标志,则跳过此步骤 - 检查
wails.json
以查看frontend:install
键中是否存在安装命令 - 如果不存在,则跳过此步骤
- 如果存在,则检查前端目录中是否存在
package.json
。如果不存在,则跳过此步骤 - 从
package.json
文件内容生成 MD5 校验和 - 检查
package.json.md5
是否存在,如果存在,将比较其内容(MD5 校验和)与生成的校验和以查看内容是否已更改。如果相同,则跳过此步骤 - 如果
package.json.md5
不存在,则使用生成的 MD5 校验和创建它 - 如果现在需要构建,或者
node_modules
不存在,或者提供了-f
标志,则在前端目录中执行安装命令
手动步骤
此步骤可以使用 npm install
从命令行或脚本中完成。
构建前端项目
Wails CLI
- 如果提供
-s
标志,则跳过此步骤 - 检查
wails.json
以查看frontend:build
键中是否存在构建命令 - 如果不存在,则跳过此步骤
- 如果存在,则在前端目录中执行它
手动步骤
此步骤可以使用 npm run build
或前端构建脚本中的任何其他内容从命令行或脚本中完成。
生成资源
Wails CLI
- 如果设置了
-nopackage
标志,则跳过此阶段 - 如果
build/appicon.png
文件不存在,则会创建一个默认文件 - 对于 Windows,请参阅 为 Windows 打包
- 如果
build/windows/icon.ico
不存在,它将从build/appicon.png
图像中创建它。
Windows
- 如果
build/windows/icon.ico
不存在,它将使用 256、128、64、48、32 和 16 的图标大小从build/appicon.png
创建它。这是使用 winicon 完成的。 - 如果
build/windows/<projectname>.manifest
文件不存在,它将从默认版本创建它。 - 将应用程序编译为生产版本(如上所示)
- 使用 winres 将图标和清单捆绑到
.syso
文件中,准备链接。
手动步骤
- 使用 winicon CLI 工具(或任何其他工具)创建
icon.ico
。 - 为您的应用程序创建/更新
.manifest
文件 - 使用 winres CLI 生成
.syso
文件。
编译应用程序
Wails CLI
- 如果提供了
-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 上,
- 使用
-tags
传递给 CLI 的附加标签将添加到默认值中 - 使用
-ldflags
传递给 CLI 的附加 ldflags 将添加到默认值中 - 传递
-o
标志 - 将使用
-compiler
指定的 Go 编译器进行编译
手动步骤
- 对于开发版本,最小的命令是:
go build -tags dev -gcflags "all=-N -l"
- 对于生产版本,最小的命令是:
go build -tags desktop,production -ldflags "-w -s -H windowsgui"
- 确保您在与
.syso
文件相同的目录中进行编译
压缩应用程序
Wails CLI
- 如果提供了
-upx
标志,则会运行upx
程序以使用默认设置压缩应用程序 - 如果还传递了
-upxflags
,则会使用这些标志而不是默认标志
手动步骤
- 手动运行
upx [flags]
来压缩应用程序。