Tauri 的构建和打包系统负责编译应用程序的 Rust 代码,打包前端资源,并为各种平台创建可分发的软件包。该系统提供了将您的源代码转换为可分发给用户的特定于平台的安装程序和软件包的基础架构。
构建和打包系统包含两个主要组件:
这些组件主要实现在 tauri-cli 和 tauri-bundler crates 中,配置由 tauri.conf.json 文件驱动。
来源
构建和打包过程通过 tauri.conf.json 文件进行配置,该文件包含与此系统相关的两个主要部分:
build:控制应用程序的构建方式bundle:控制应用程序如何打包以进行分发这是配置结构的直观展示:
来源
tauri.conf.json 中的 build 部分控制着你的应用程序的构建方式。
| 属性 | 类型 | 描述 |
|---|---|---|
beforeBuildCommand | 字符串 | 在构建应用程序之前运行的命令,通常用于构建前端 |
beforeDevCommand | 字符串 | 在启动开发模式之前运行的命令,通常用于启动前端开发服务器 |
devUrl | 字符串 | 在开发模式下加载的 URL,通常指向本地开发服务器 |
frontendDist | 字符串 | 构建后前端资源所在的目录 |
removeUnusedCommands | 布尔值 | 是否移除未使用的命令内部以减小二进制文件大小 |
features | 数组 | 构建应用程序时要启用的 Cargo 功能列表 |
配置示例
构建过程使用此配置来:
beforeBuildCommand 来构建前端资源来源
tauri.conf.json 中的 bundle 部分控制着你的应用程序在各种平台上分发时的打包方式。
捆绑配置允许你指定:
targets)来源
构建过程由 tauri build 命令触发,并遵循以下步骤:
构建过程主要实现于:
构建过程输出编译后的二进制文件,并为其准备打包。
来源
打包过程由 tauri build 命令(默认包含打包)或专门的 tauri bundle 命令触发,并遵循以下步骤:
打包过程中涉及的关键组件:
BundleSettings:打包过程的配置PackageType:用于不同打包类型(MSI、NSIS、DMG 等)的枚举tauri-bundler crate 中的特定于平台的打包器打包过程根据捆绑配置创建特定于平台的软件包以供分发。
来源
打包系统支持为不同的操作系统创建特定于平台的软件包。
Windows 打包支持两种主要的安装程序类型:
配置选项包括:
macOS 打包会创建:
.app 捆绑包:标准的 macOS 应用程序格式.dmg 磁盘映像:用于分发配置选项包括:
示例
Linux 打包会创建:
移动端打包支持:
移动端打包是 Tauri 中一项较新的功能,并在 CLI 中通过特定命令实现:
tauri android buildtauri ios build来源
构建和打包系统的主要命令是:
| 命令 | 描述 |
|---|---|
tauri build | 构建并打包应用程序 |
tauri bundle | 仅打包应用程序(假设它已构建) |
tauri dev | 在开发模式下构建并运行应用程序 |
tauri ios build | 为 iOS 构建应用程序 |
tauri android build | 为 Android 构建应用程序 |
每个命令都支持各种标志和选项来自定义构建和打包过程。
带选项的命令示例
tauri build --debug --target x86_64-pc-windows-msvc --features custom-feature
来源
构建系统通过 beforeBuildCommand 和 beforeDevCommand 配置选项与前端构建集成。这允许 Tauri:
frontendDist 配置指定了在哪里找到构建好的前端资源,这些资源将被嵌入到最终的软件包中。
来源
当捆绑配置中的 createUpdaterArtifacts 选项启用时,打包系统支持创建更新程序产物。这会创建:
更新程序产物由 Tauri 内置的更新机制使用,为应用程序提供自动更新。
来源
构建和打包系统中的移动端支持允许为 iOS 和 Android 平台创建应用程序。
iOS 打包过程:
特定于 iOS 的配置选项
iOS 构建过程实现在:
Android 打包同样提供工具来:
移动端打包通过专用命令触发。
tauri ios buildtauri android build来源
Tauri 构建和打包系统提供了一个全面的工具链,用于将您的应用程序源代码转换为各种平台的发行软件包。该系统可通过 tauri.conf.json 文件进行高度配置,允许您自定义构建和打包过程以满足应用程序的需求。
有关特定组件的更多详细信息