5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 17:09:23 +08:00
wails/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/guides/manual-builds.mdx
2022-03-15 20:13:32 +11:00

96 lines
3.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 手动构建
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]`以压缩应用程序。