菜单

CLI

相关源文件

Tauri CLI 是一个命令行工具,作为开发、构建和打包 Tauri 应用程序的主要接口。本页面文档介绍了 CLI 的架构、命令以及它如何处理跨越不同平台的 Tauri 应用程序,包括桌面平台(Windows、macOS、Linux)和移动平台(iOS 和 Android)。

有关配置 Tauri 应用程序的信息,请参阅 配置。有关打包系统的信息,请参阅 打包器

概述与架构

Tauri CLI 提供了一个统一的命令行接口,它抽象了特定平台的实现,使开发人员能够通过一致的 API 轻松地处理桌面和移动平台。CLI 处理从初始化新项目到构建、打包和在开发模式下运行应用程序的所有内容。

来源

命令结构

Tauri CLI 通过一组子命令进行操作,这些子命令处理应用程序开发和分发的不同方面。每个命令都有自己的一组选项和行为。

命令描述关键文件
init初始化一个新的 Tauri 项目crates/tauri-cli/src/init.rs
dev在开发模式下运行应用程序,支持热重载crates/tauri-cli/src/dev.rs
build在发布模式下构建应用程序crates/tauri-cli/src/build.rs
bundle创建特定于平台的软件包和安装程序crates/tauri-cli/src/bundle.rs
androidAndroid 相关命令crates/tauri-cli/src/mobile/android/
iosiOS 相关命令crates/tauri-cli/src/mobile/ios/
add向项目添加组件crates/tauri-cli/src/add.rs
remove从项目移除组件crates/tauri-cli/src/remove.rs
plugin管理插件crates/tauri-cli/src/plugin.rs
icon生成应用程序图标crates/tauri-cli/src/icon.rs
inspect检查应用程序详细信息crates/tauri-cli/src/inspect.rs

来源

全局选项

CLI 支持适用于所有命令的全局选项

--verbose (-v)      Increase logging verbosity (can be used multiple times)
--help (-h)         Display help information
--version (-V)      Display version information

详细程度决定了命令执行期间显示的详细信息量

-v       INFO level - Show basic information
-vv      DEBUG level - Show more detailed information
-vvv     TRACE level - Show all available information

来源

接口抽象

CLI 使用基于 trait 的抽象系统,通过一致的接口处理不同的平台和构建目标。

Interface trait 定义了构建和运行 Tauri 应用程序的方法,而 AppSettings trait 定义了检索应用程序元数据和设置的方法。Rust 结构体实现了 Rust 应用程序的 Interface trait,而 RustAppSettings 结构体实现了 AppSettings trait。

AppInterface 类作为具体实现的包装器,为命令提供了一个简化的 API 以供交互。

来源

配置管理

CLI 使用项目目录中的 tauri.conf.json 文件作为基础配置系统。此配置可以通过特定于平台的配置文件和命令行参数进行扩展。

配置系统遵循以下步骤

  1. 加载并解析基础 tauri.conf.json 文件
  2. 查找并合并特定于平台的配置(例如,tauri.macos.conf.json
  3. 合并通过 --config CLI 参数提供的任何配置
  4. 根据 JSON schema 验证合并后的配置
  5. 将验证后的配置转换为适当的设置对象

最终配置控制以下方面

  • 应用程序元数据(名称、版本、标识符)
  • 构建设置(功能、前端目录)
  • 打包设置(图标、资源、目标格式)
  • 特定于平台的设置(Windows、macOS、Linux、iOS、Android)

来源

构建系统

build 命令会为当前平台编译您的 Tauri 应用程序,或者如果指定了目标平台,则为指定的平台编译。

构建流程

构建过程执行以下步骤

  1. 加载和验证配置
  2. 根据目标平台创建合适的接口
  3. 运行配置中指定的任何构建前命令
  4. 验证前端资源目录是否存在且配置正确
  5. 使用 Cargo 构建 Rust 应用程序
  6. 根据需要选择性地打包应用程序

关键构建选项

选项描述
--debug以调试模式而不是发布模式构建
--target指定目标三元组(例如,x86_64-pc-windows-msvc
--features指定要启用的 cargo 功能
--config提供额外的配置
--no-bundle跳过打包步骤

来源

打包系统

bundle 命令从您构建好的 Tauri 应用程序创建特定于平台的软件包。

打包流程

打包系统支持创建不同类型的软件包

包类型描述平台
appmacOS 应用程序包macOS
dmgmacOS 磁盘映像macOS
iosiOS 应用程序包macOS (用于 iOS)
msiWindows 安装程序包Windows
nsisWindows NSIS 安装程序Windows
appimageLinux AppImageLinux
debDebian 包Linux
rpmRPM 包Linux
updater更新包所有

关键打包选项

选项描述
--debug打包调试版本而非发布版本
--target指定目标三元组
--bundles要创建的打包格式的逗号分隔列表
--features要启用的 Cargo 功能
--config要合并的附加配置

来源

开发工作流

dev 命令在开发模式下运行您的应用程序,支持热重载功能,从而在开发过程中实现快速迭代。

开发流程

开发过程包括以下关键功能

  1. 热重载:CLI 监视代码更改并自动重新构建应用程序。
  2. 构建前命令:在启动开发模式之前运行命令,通常用于启动前端开发服务器。
  3. 内置开发服务器:可选地为开发提供静态文件。
  4. 文件监视器:监视项目文件更改并触发重新构建。

关键开发选项

选项描述
--features要启用的 Cargo 功能
--release以发布模式运行,而不是调试模式
--no-watch禁用文件监视器
--no-dev-server禁用内置开发服务器
--port为内置开发服务器指定端口
--target指定目标三元组

来源

移动支持

Tauri CLI 支持在移动平台(Android 和 iOS)上构建和运行应用程序。

移动命令结构

移动开发工作流

对于 Android 和 iOS,移动开发工作流遵循以下通用步骤

  1. 使用 tauri <platform> init **初始化**移动项目
  2. 使用 tauri <platform> dev **开发**,支持热重载
  3. 使用 tauri <platform> build **构建**以创建分发包

Android 特有功能

  • 与 Android Studio 集成
  • 构建 APK 和 AAB 包
  • 用于调试的设备选择
  • Android 特定设置的配置

iOS 特有功能(仅限 macOS)

  • 与 Xcode 集成
  • 构建 iOS 应用包和 IPA
  • 模拟器和设备选择
  • 代码签名和预置配置文件

来源

常见的 CLI 模式和选项

在不同的命令中,Tauri CLI 都遵循一致的选项和配置模式。

配置选项

--config 选项允许将附加配置作为 JSON 字符串或文件路径传递

tauri <command> --config '{"window": {"width": 800, "height": 600}}'
tauri <command> --config custom-config.json

此功能在大多数命令中都可用,允许在不修改 tauri.conf.json 文件的情况下覆盖默认配置。

Cargo 功能

--features 选项允许指定要启用的其他 Cargo 功能

tauri <command> --features feature1,feature2

这对于条件编译和启用可选功能特别有用。

目标平台

--target 选项允许指定目标平台

tauri <command> --target x86_64-pc-windows-msvc

这支持跨不同平台进行编译。

来源

内部架构

CLI 是围绕命令模式构建的,每个命令都实现为一个独立的模块。命令通过 Interface trait 与应用程序交互,该 trait 提供了对特定平台实现的抽象。

这种架构提供了清晰的关注点分离

  • 命令处理选项的解析和验证
  • 接口处理特定于平台的实现细节
  • 配置管理应用程序设置和元数据
  • 构建系统处理应用程序的构建和打包

来源

结论

Tauri CLI 提供了一套全面的工具,用于在桌面和移动平台上开发、构建和分发 Tauri 应用程序。通过在统一的接口后面抽象平台特定的细节,它使开发人员能够使用统一的命令结构来处理不同的平台。

CLI 的架构围绕模块化和可扩展性设计,为应用程序开发的各个方面提供了独立的命令,并提供了一个支持平台特定自定义的配置系统。