一键导入
tauri-best-practices
Tauri 框架最佳实践指南。使用场景:Tauri 应用开发、代码审查、架构设计
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Tauri 框架最佳实践指南。使用场景:Tauri 应用开发、代码审查、架构设计
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
创建符合规范的 git 提交消息,并在提交前 review 将提交的变更。优先遵循项目现有提交规范,支持 Conventional Commits 格式。使用场景:用户要求创建提交、编写提交消息、提交前检查变更
在 GitHub/GitLab/Gitea 上创建格式规范的 Issue。优先使用仓库 Issue 模板,支持 Bug 报告、功能请求等类型,自动生成结构化描述。使用场景:用户要求提交 issue、报告 bug、提出功能需求
使用 ddgr 在终端搜索 DuckDuckGo,返回结构化结果。支持站点限定、时间过滤、区域搜索。使用场景:用户要求搜索信息、查找文档、搜索特定网站内容
自动化 GitHub/GitLab/Gitea 发布流程。使用场景:发布新版本、创建版本标签、更新 CHANGELOG。自动分析 Git 提交、更新 CHANGELOG.md、确定语义化版本号、创建 Git 标签、推送到远程并创建 Release
将指定目录下的 skills 通过符号链接安装到目标目录。支持单 skill 目录和多 skill 父目录,自动校验 SKILL.md 存在性。使用场景:安装技能、链接 skills 到指定目录
自动化处理 GitHub/GitLab/Gitea Issue 的完整工作流:获取 issue → 分支管理(含 worktree)→ 代码实现 → 提交 → 创建 PR/MR。使用场景:用户要求处理 issue、解决 bug、实现功能、贴了 issue 链接
| name | tauri-best-practices |
| description | Tauri 框架最佳实践指南。使用场景:Tauri 应用开发、代码审查、架构设计 |
Tauri 跨平台桌面应用开发最佳实践。
💡 创建新项目请使用 tauri-create 技能。
为什么:
常用官方插件:
| 插件 | 功能 | 安装命令 |
|---|---|---|
shell | 打开 URL、执行命令 | pnpm tauri add shell |
fs | 文件系统访问 | pnpm tauri add fs |
dialog | 文件对话框 | pnpm tauri add dialog |
notification | 系统通知 | pnpm tauri add notification |
clipboard | 剪贴板操作 | pnpm tauri add clipboard-manager |
http | HTTP 请求 | pnpm tauri add http |
store | 数据持久化 | pnpm tauri add store |
window-state | 窗口状态记忆 | pnpm tauri add window-state |
📌 完整插件列表:https://v2.tauri.app/zh-cn/plugin/
注意事项:
pnpm tauri add 一次只能添加一个插件pnpm tauri add clipboard-manager
pnpm tauri add window-state
// 导入全部方法
import * as Clipboard from '@tauri-apps/plugin-clipboard-manager'
// 然后使用
await Clipboard.writeText(text)
// 解构导入
import { writeText, readText } from '@tauri-apps/plugin-clipboard-manager'
架构设计:
src/
├── api/
│ └── clipboard.ts # 封装好的剪贴板 API
├── lib/
│ └── platform.ts # 环境检测
└── main.ts
实现示例:
// src/lib/platform.ts
export const isTauri = () => '__TAURI__' in window
// src/api/clipboard.ts
import * as Clipboard from '@tauri-apps/plugin-clipboard-manager'
import { isTauri } from '@/lib/platform'
export async function writeText(text: string): Promise<void> {
if (isTauri()) {
await Clipboard.writeText(text)
} else {
await navigator.clipboard.writeText(text)
}
}
export async function readText(): Promise<string> {
if (isTauri()) {
return await Clipboard.readText()
} else {
return await navigator.clipboard.readText()
}
}
// 使用
import { writeText, readText } from '@/api/clipboard'
await writeText('Hello')
Web 不支持的处理方式:
// 方式 1:返回默认值/Mock 数据
export async function getAppVersion(): Promise<string> {
if (isTauri()) {
return await app.getVersion()
}
return '0.0.0-browser' // 开发时使用模拟值
}
// 方式 2:抛出明确错误
export async function readFile(path: string): Promise<string> {
if (isTauri()) {
return await fs.readTextFile(path)
}
throw new Error('File API 仅在桌面端可用')
}
// 方式 3:提供降级方案
export async function saveData(key: string, value: string): Promise<void> {
if (isTauri()) {
await fs.writeTextFile(`data/${key}.txt`, value)
} else {
localStorage.setItem(key, value) // 浏览器降级到 localStorage
}
}
优势:
用户输入:"帮我审查一下这个 Tauri 项目的代码"
审查要点:
src/api/ 目录)用户输入:"我需要实现剪贴板功能"
推荐方案:
@tauri-apps/plugin-clipboard-manager 插件src/api/clipboard.ts 中封装 API用户输入:"编译时间太长了,有什么优化建议?"
优化方向:
Cargo.toml 中不必要的依赖用户输入:"我要设计一个 Tauri 应用的架构"
架构建议:
src/api/ 中统一封装 Tauri APIisTauri() 检测实现双环境支持判断标准:
优先级:官方插件 > 社区插件 > 自定义 Rust 代码
三种处理方式(详见上文"前端封装 API 层"章节):
注意事项:
pnpm tauri add 一次只能添加一个插件src-tauri/capabilities/default.json 中配置权限推荐流程:
pnpm dev 进行纯前端开发(快速热更新)pnpm tauri dev 测试桌面端集成pnpm tauri build 在目标平台测试src-tauri/capabilities/default.json 中配置权限shell 插件执行命令,避免命令注入风险