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 |
android | Android 相关命令 | crates/tauri-cli/src/mobile/android/ |
ios | iOS 相关命令 | 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 文件作为基础配置系统。此配置可以通过特定于平台的配置文件和命令行参数进行扩展。
配置系统遵循以下步骤
tauri.conf.json 文件tauri.macos.conf.json)--config CLI 参数提供的任何配置最终配置控制以下方面
来源
build 命令会为当前平台编译您的 Tauri 应用程序,或者如果指定了目标平台,则为指定的平台编译。
构建过程执行以下步骤
| 选项 | 描述 |
|---|---|
--debug | 以调试模式而不是发布模式构建 |
--target | 指定目标三元组(例如,x86_64-pc-windows-msvc) |
--features | 指定要启用的 cargo 功能 |
--config | 提供额外的配置 |
--no-bundle | 跳过打包步骤 |
来源
bundle 命令从您构建好的 Tauri 应用程序创建特定于平台的软件包。
打包系统支持创建不同类型的软件包
| 包类型 | 描述 | 平台 |
|---|---|---|
app | macOS 应用程序包 | macOS |
dmg | macOS 磁盘映像 | macOS |
ios | iOS 应用程序包 | macOS (用于 iOS) |
msi | Windows 安装程序包 | Windows |
nsis | Windows NSIS 安装程序 | Windows |
appimage | Linux AppImage | Linux |
deb | Debian 包 | Linux |
rpm | RPM 包 | Linux |
updater | 更新包 | 所有 |
| 选项 | 描述 |
|---|---|
--debug | 打包调试版本而非发布版本 |
--target | 指定目标三元组 |
--bundles | 要创建的打包格式的逗号分隔列表 |
--features | 要启用的 Cargo 功能 |
--config | 要合并的附加配置 |
来源
dev 命令在开发模式下运行您的应用程序,支持热重载功能,从而在开发过程中实现快速迭代。
开发过程包括以下关键功能
| 选项 | 描述 |
|---|---|
--features | 要启用的 Cargo 功能 |
--release | 以发布模式运行,而不是调试模式 |
--no-watch | 禁用文件监视器 |
--no-dev-server | 禁用内置开发服务器 |
--port | 为内置开发服务器指定端口 |
--target | 指定目标三元组 |
来源
Tauri CLI 支持在移动平台(Android 和 iOS)上构建和运行应用程序。
对于 Android 和 iOS,移动开发工作流遵循以下通用步骤
tauri <platform> init **初始化**移动项目tauri <platform> dev **开发**,支持热重载tauri <platform> build **构建**以创建分发包来源
在不同的命令中,Tauri CLI 都遵循一致的选项和配置模式。
--config 选项允许将附加配置作为 JSON 字符串或文件路径传递
tauri <command> --config '{"window": {"width": 800, "height": 600}}'
tauri <command> --config custom-config.json
此功能在大多数命令中都可用,允许在不修改 tauri.conf.json 文件的情况下覆盖默认配置。
--features 选项允许指定要启用的其他 Cargo 功能
tauri <command> --features feature1,feature2
这对于条件编译和启用可选功能特别有用。
--target 选项允许指定目标平台
tauri <command> --target x86_64-pc-windows-msvc
这支持跨不同平台进行编译。
来源
CLI 是围绕命令模式构建的,每个命令都实现为一个独立的模块。命令通过 Interface trait 与应用程序交互,该 trait 提供了对特定平台实现的抽象。
这种架构提供了清晰的关注点分离
来源
Tauri CLI 提供了一套全面的工具,用于在桌面和移动平台上开发、构建和分发 Tauri 应用程序。通过在统一的接口后面抽象平台特定的细节,它使开发人员能够使用统一的命令结构来处理不同的平台。
CLI 的架构围绕模块化和可扩展性设计,为应用程序开发的各个方面提供了独立的命令,并提供了一个支持平台特定自定义的配置系统。