mcpField
T
tauri

tauri

github.com/microck开发40843 次安装17 周前更新
代码仓库

关于 tauri

这项基于文档的技能面向使用 Rust 和 WebView 开发 Tauri 应用的开发者,涵盖项目配置、插件、调试、安全、移动开发与发布流程。

主要功能

  1. 01项目初始化与配置
  2. 02Rust 与 WebView 的 IPC 指引
  3. 03原生及移动插件开发指引
  4. 04调试与 DevTools 参考
  5. 05安全与权限实践
  6. 06代码签名和发布指引

适用场景

  1. 01启动 Tauri 应用项目
  2. 02实现前端到 Rust 的命令调用
  3. 03开发 Android 或 iOS 插件
  4. 04准备已签名的应用发布版本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microck/ordinary-claude-skills --skill tauri

安装后在 Claude Code 中输入/tauri确认已加载。

附带文件metadata.json

详细介绍

Tauri 技能

基于官方文档生成的 Tauri 开发全面指南。

何时使用此技能

遇到以下情况时,应使用此技能:

  • 使用 Rust + WebView 构建跨平台桌面应用
  • 实现原生系统集成(文件系统、通知、系统托盘)
  • 设置 Tauri 项目结构和配置
  • 在 VS Code 或 Neovim 中调试 Tauri 应用
  • 配置 Windows/macOS/Linux 代码签名以进行分发
  • 使用 Tauri 开发移动应用(Android/iOS)
  • 创建用于自定义原生功能的 Tauri 插件
  • 实现前端与后端之间的 IPC(进程间通信)
  • 优化 Tauri 应用的安全性和权限
  • 为 Tauri 应用发布设置 CI/CD 流水线

核心概念

多进程架构

Tauri 采用 核心进程(Rust)和 WebView 进程(HTML/CSS/JS)架构:

  • 核心进程:管理窗口、系统托盘、IPC 路由,并拥有完整的操作系统访问权限
  • WebView 进程:使用系统 WebView 渲染 UI(不捆绑浏览器!)
  • 最小权限原则:每个进程仅拥有所需的最少权限
进程间通信(IPC)

两种 IPC 基元:

  • 事件:单向、即发即弃的消息(核心进程 → WebView 和 WebView → 核心进程)
  • 命令:使用 invoke() API 的请求-响应模式(仅限 WebView → 核心进程)
为什么选择 Tauri?
  • 二进制文件体积小:使用操作系统 WebView(Microsoft Edge WebView2/WKWebView/webkitgtk)
  • 安全优先:消息传递架构可防止直接访问函数
  • 多平台:桌面端(Windows/macOS/Linux)+ 移动端(Android/iOS)

快速参考

1. 项目设置 - Cargo.toml
[build-dependencies]
tauri-build = "2.0.0"

[dependencies]
tauri = { version = "2.0.0" }
2. Windows 代码签名配置
{
  "tauri": {
    "bundle": {
      "windows": {
        "certificateThumbprint": "A1B1A2B2A3B3A4B4A5B5A6B6A7B7A8B8A9B9A0B0",
        "digestAlgorithm": "sha256",
        "timestampUrl": "http://timestamp.comodoca.com"
      }
    }
  }
}
3. VS Code 调试 - launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "lldb",
      "request": "launch",
      "name": "Tauri Development Debug",
      "cargo": {
        "args": [
          "build",
          "--manifest-path=./src-tauri/Cargo.toml",
          "--no-default-features"
        ]
      },
      "preLaunchTask": "ui:dev"
    }
  ]
}
4. Rust 状态管理
let data = app.state::<AppData>();
5. GitHub Actions - 发布工作流
name: 'publish'

on:
  push:
    tags:
      - 'app-v*'
6. Trunk 配置(Rust 前端)
# Trunk.toml
[watch]
ignore = ["./src-tauri"]

[serve]
ws_protocol = "ws"
7. Azure Key Vault 签名(relic.conf)
[server.azurekv]
url = "https://<KEY_VAULT_NAME>.vault.azure.net/certificates/<CERTIFICATE_NAME>"
8. 自定义签名命令(tauri.conf.json)
{
  "tauri": {
    "bundle": {
      "windows": {
        "signCommand": "relic sign -c relic.conf -f -o \"%1\""
      }
    }
  }
}
9. 以编程方式打开 DevTools
use tauri::Manager;

#[tauri::command]
fn open_devtools(window: tauri::Window) {
    window.open_devtools();
}
10. 移动插件 - Android 命令
@Command
fun download(invoke: Invoke) {
    val args = invoke.parseArgs(DownloadArgs::class.java)
    // Command implementation
    invoke.resolve()
}

参考文件

此技能包含全面的文档,分为 9 个类别:

core_concepts.md

包含: 7 个页面,涵盖基础架构

  • 进程模型:多进程架构、核心进程与 WebView 进程、安全原则
  • 进程间通信:事件和命令模式、消息传递
  • 在 VS Code 中调试:设置 vscode-lldb、launch.json 配置、Windows 调试器
  • Tauri 架构:生态系统概览(tauri-runtime、tauri-macros、tauri-utils、WRY、TAO)

使用时机:了解 Tauri 的设计理念、调试设置和架构决策

development.md

包含: 13 个页面,介绍开发工作流

  • 在 Neovim 中调试:nvim-dap 设置、codelldb 配置、用于开发服务器的 overseer 插件
  • CrabNebula DevTools:实时日志检查、性能跟踪、事件监控
  • 调试:仅用于开发的代码模式、控制台日志记录、WebView 检查器、生产环境调试
  • 移动插件开发:Android(Kotlin)和 iOS(Swift)插件创建、生命周期事件

使用时机:设置开发环境、调试策略、移动开发

distribution.md

包含: 8 个页面,介绍应用分发

  • Windows 代码签名:OV 证书、Azure Key Vault、自定义签名命令、GitHub Actions
  • Azure 代码签名:trusted-signing-cli 设置、环境变量、签名工作流
  • 代码签名最佳实践:EV 与 OV 证书、SmartScreen 信誉、Microsoft Store

使用时机:准备应用发布、代码签名、CI/CD 流水线、生产构建

getting_started.md

包含: 快速入门指南和初始设置说明

  • 项目初始化
  • 第一个 Tauri 应用教程
  • 配置基础知识

适用场景:启动新的 Tauri 项目、帮助新开发者熟悉项目

plugins.md

包含: 插件开发和集成指南

  • 创建自定义插件
  • 移动端插件模式(Android/iOS)
  • 插件配置
  • 生命周期事件(load、onNewIntent)
  • 命令参数和解析

适用场景:为 Tauri 扩展原生功能、集成第三方库

reference.md

包含: API 参考和配置架构

  • tauri.conf.json 结构
  • 命令行界面选项
  • 配置选项参考

适用场景:查找特定 API 方法、配置属性、CLI 标志

security.md

包含: 安全最佳实践和模式

  • 内容安全策略(CSP)
  • 安全 IPC 模式
  • 权限管理
  • WebView 安全

适用场景:加强应用安全、进行安全审计、实现安全功能

tutorials.md

包含: 分步实现指南

  • 构建特定功能
  • 集成示例
  • 真实用例

适用场景:通过示例学习、实现常见模式

other.md

包含: 上述类别未涵盖的其他文档

  • 高级主题
  • 边缘情况
  • 平台特定说明

适用场景:排查不常见的问题、实现平台特定功能

使用此技能

初学者
  1. 从这里开始: 阅读 getting_started.md,了解项目设置和基本概念
  2. 接着阅读: core_concepts.md → Process Model 和 IPC 部分
  3. 动手练习: 按照 development.md → Debug in VS Code 设置调试
  4. 开始构建: 按照 tutorials.md 中的教程操作

初学者常见问题:

  • “如何创建 Tauri 应用?” → getting_started.md
  • “什么是 Core Process?” → core_concepts.md → Process Model
  • “如何从 JavaScript 调用 Rust?” → core_concepts.md → IPC → Commands
中级开发者
  1. 重点阅读: plugins.md,了解自定义原生功能
  2. 熟练掌握: development.md 中的调试和 DevTools
  3. 深入探索: reference.md 中的 API 详情
  4. 实现: core_concepts.md 中的自定义 IPC 模式

中级开发者常见问题:

  • “如何创建自定义插件?” → plugins.md → Plugin Development
  • “如何调试性能问题?” → development.md → CrabNebula DevTools
  • “有哪些可用的配置选项?” → reference.md
高级用户
  1. 深入了解: security.md 中适用于生产环境的安全知识
  2. 优化: plugins.md 中的移动端开发模式
  3. 自动化: distribution.md 中的分发工作流
  4. 自定义: other.md 中的高级模式

高级用户常见问题:

  • “如何为 Windows 设置代码签名?” → distribution.md → Windows Code Signing
  • “如何创建移动端插件?” → development.md → Mobile Plugin Development
  • “有哪些安全最佳实践?” → security.md
导航提示
  • 按主题搜索: 每个参考文件都包含目录
  • 代码示例: 所有代码块都标注了语言
  • 原始文档: 参考文件包含源文档的 URL
  • 快速查找模式: 请先查看上方的 Quick Reference 部分
与 Claude 搭配使用

向 Claude 咨询 Tauri 相关问题时:

  1. 说明具体情况: 提及平台(Windows/macOS/Linux/Android/iOS)
  2. 提供上下文: 如有需要,请分享你的 tauri.conf.json
  3. 参考分类: “查看 distribution.md 文件中的签名信息”
  4. 分享错误: 附上完整的错误消息和堆栈跟踪

资源

references/

从 Tauri 官方来源(https://tauri.app/)提取并整理的文档。这些文件包含:

  • 详细说明:架构、模式、最佳实践
  • 代码示例:标注语言(rust、json、toml、kotlin、swift)
  • 来源链接:便于深入阅读的原始文档 URL
  • 目录:快速浏览各文件内容
scripts/

用于常见自动化任务的辅助脚本:

  • 构建脚本
  • 测试工具
  • 部署辅助工具

在此处添加项目专用的自定义自动化脚本

assets/

模板、样板代码和示例项目:

  • 项目模板
  • 配置示例
  • 示例应用

在此处添加模板和样板代码

常见模式

创建 Tauri 命令
#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}

// In main.rs
fn main() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![greet])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}
从前端调用命令
import { invoke } from '@tauri-apps/api/core';

const greeting = await invoke('greet', { name: 'World' });
console.log(greeting); // "Hello, World!"
触发事件
// From Rust
app.emit_all("event-name", Payload { message: "Hello".into() }).unwrap();

// Listening in JavaScript
import { listen } from '@tauri-apps/api/event';

const unlisten = await listen('event-name', (event) => {
    console.log(event.payload.message);
});

调试快速提示

启用 Rust 回溯
# Linux/macOS
RUST_BACKTRACE=1 tauri dev

# Windows (PowerShell)
$env:RUST_BACKTRACE=1; tauri dev
创建调试构建
npm run tauri build -- --debug
以编程方式打开 DevTools
use tauri::Manager;
window.open_devtools();
window.close_devtools();

平台特定说明

Windows
  • 使用 Microsoft Edge WebView2(在 Windows 11 上自动安装)
  • 代码签名是获得 SmartScreen 信誉所必需的
  • EV 证书可立即获得信任;OV 证书需要一段时间积累信誉
macOS
  • 使用 WKWebView(macOS 原生组件)
  • DevTools API 为私有 API(在生产环境中使用会导致 App Store 审核不通过)
  • 使用 Apple Developer 证书进行代码签名
Linux
  • 使用 webkitgtk(必须单独安装)
  • 软件包格式:.deb、.rpm、.AppImage
Android
  • 基于 Kotlin 的插件
  • 集成 Activity 生命周期
  • 需要 Android Studio
iOS
  • 基于 Swift 的插件
  • 使用 Swift Package Manager 管理依赖项
  • 需要 Xcode

说明

  • 此技能根据 Tauri 官方文档自动生成
  • 所有代码示例均提取自官方来源
  • 参考文件保留了结构和指向原始文档的链接
  • 快速参考模式展示了真实场景中的用法
  • 最后更新:2025 年 10 月

更新

要使用更新后的文档刷新此技能:

  1. 使用 configs/tauri.json 重新运行抓取程序
  2. 技能将使用最新信息重新构建
  3. 增强过程会保留 scripts/ 和 assets/ 中的自定义内容

评论

支持 Markdown