mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 13:51:10 +08:00
96 lines
3.8 KiB
Plaintext
96 lines
3.8 KiB
Plaintext
# 手动构建
|
||
|
||
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 sum 创建它
|
||
- 如果现在需要构建,或者`node_modules`不存在,或者给出了`-f`标志,则在前端目录中执行安装命令
|
||
|
||
#### 手动步骤
|
||
|
||
这一步可以从命令行或带有`npm install`的前端脚本完成.
|
||
|
||
### 构建前端项目
|
||
|
||
#### Wails 命令行
|
||
|
||
- 如果给出了`-s`标志,则跳过此步骤
|
||
- 检查`wails.json`中是否有构建命令`frontend:build`
|
||
- 如果没有,则跳过此步骤
|
||
- 如果有,就在 frontend 目录下执行它
|
||
|
||
#### 手动步骤
|
||
|
||
这一步可以从命令行或带有前端构建脚本`npm run build`的脚本或任何前端构建脚本完成。
|
||
|
||
### 生成资源
|
||
|
||
#### Wails 命令行
|
||
|
||
- 如果设置了`-nopackage`标志,则跳过此阶段
|
||
- 如果`build/appicon.png`文件不存在,则创建一个默认文件
|
||
- 对于 Windows,请参阅[Windows](#windows)
|
||
- 如果`build/windows/icon.ico`不存在,它将从`build/appicon.png`图像创建它。
|
||
|
||
##### Windows
|
||
|
||
- 如果`build/windows/icon.ico`不存在,它将从`build/appicon.png`创建 256、128、64、48、32 和 16 大小的图标。这是使用[winicon](https://github.com/leaanthony/winicon)完成的。
|
||
- 如果`build/windows/<projectname>.manifest`文件不存在,它会从默认版本创建它。
|
||
- 将应用程序编译为生产版本(如上所述)。
|
||
- 使用[winres](https://github.com/tc-hib/winres)将 icon 和 manifest 打包到一个`.syso`文件。
|
||
|
||
#### 手动步骤
|
||
|
||
- 使用[winicon](https://github.com/leaanthony/winicon)命令行工具或者其他工具创建`icon.ico`
|
||
- 为您的应用程序创建或者更新`.manifest`文件
|
||
- 使用[winres 命令行](https://github.com/tc-hib/go-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"`
|
||
- 使用`-tags`传递给命令行的其他`tags`被添加到默认值中
|
||
- 使用`-ldflags`传递给命令行的其他`ldflags`将添加到默认值中
|
||
- 传递`-o`标志
|
||
- 指定的`-compiler`将用于 Go 编译器
|
||
|
||
#### 手动步骤
|
||
|
||
- 开发环境构建,最简单的命令是: `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]`以压缩应用程序。
|