anarlog 仓库新增 Tauri 插件全流程指南:add-plugin Skill 的脚手架与集成规范

发布时间:2026/9/16 11:50:47

anarlog 仓库新增 Tauri 插件全流程指南:add-plugin Skill 的脚手架与集成规范 anarlog 仓库新增 Tauri 插件全流程指南add-plugin Skill 的脚手架与集成规范【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog导读本文面向需要在 anarlog 开源仓库中新增 Tauri 插件的开发者完整梳理.agents/skills/add-plugin/SKILL.md中定义的插件生成、代码规约与仓库集成流程从tauri-apps/cli plugin new脚手架开始到以plugins/analytics为范本整理目录结构与依赖再到通过 specta 生成 TypeScript 绑定最后完成 Cargo 工作区、桌面端 Tauri 工程与能力capabilities声明的四处集成。读完本文你将能够按仓库统一规范新增一个可被apps/desktop前端直接调用的 Tauri 插件并理解每一步背后的实现依据。一、技能定位何时使用 add-plugin.agents/skills/add-plugin/SKILL.md在 frontmatter 中明确将自身定位为internal: true的内部技能适用于两类场景当需求是在plugins/目录下新增或创建插件时使用该技能完成插件生成与仓库集成当需求是把一份刚生成的插件接入项目既有约定时同样适用。反之如果需求是修改已有插件例如为plugins/analytics增加新的事件命令则不应使用本技能说明仓库对脚手架生成与存量维护做了明确的责任切分避免生成器覆盖手工改动。二、脚手架生成一条命令产出插件骨架技能给出的生成命令无需手写任何 boilerplatenpx tauri-apps/cli plugin new NAME \ --no-example \ --directory ./plugins/NAME其中NAME由 Agent 根据用户请求决定如analytics、fs-sync生成器会把它写入 crate 名、npm 包名与源码模块中。--no-example跳过示例应用--directory ./plugins/NAME把插件直接生成到仓库统一的plugins/目录下。生成后插件应立即能通过仓库根 Cargo.toml 中的 workspace 依赖例如tauri-plugin-analytics { path plugins/analytics }被引用——这正是第 5 节集成步骤之一。三、以 plugins/analytics 为范本的代码规约技能要求Follow the style and conventions used inplugins/analytics生成后需做四项清理/调整操作说明删除生成的rollup.config.js本项目不采用 rollup 打包前端绑定删除生成的README.md插件说明统一由仓库文档体系承载更新tsconfig.json改为继承仓库基础配置并限定js/目录更新package.json对齐anlg/plugin-NAME命名与 codegen 脚本以plugins/analytics为参照整理后的形态是package.jsonname: anlg/plugin-analytics、private: true、main: ./js/index.ts脚本codegen: cargo test -p tauri-plugin-analytics与typecheck: tsc --noEmit依赖仅tauri-apps/api见 plugins/analytics/package.jsontsconfig.jsonextends ../tsconfig.base.jsoninclude: [./js/*.ts]见 plugins/analytics/tsconfig.json与仓库根 tsconfig.base.json 对齐Rust 侧标准布局src/lib.rs、src/commands.rs#[tauri::command]#[specta::specta]命令、src/ext.rsRust 扩展 trait、src/error.rs、src/permissions能力描述目录与js/TypeScript 绑定目录。默认保留 ping 函数技能特别强调除非用户要求不同的命令行为否则应在ext.rs与commands.rs中同时保留生成器产出的单个ping命令。这一约定保证新插件开箱即用前端可直接调用ping验证插件注入成功后续再按需增补业务命令与plugins/analytics中event、identify、set_properties等命令同构演进。四、生成 TypeScript 绑定codegen 流程代码落位后执行绑定生成pnpm -F anlg/plugin-NAME codegen-F anlg/plugin-NAME指定 pnpm workspace 过滤目标。该脚本最终执行cargo test -p tauri-plugin-NAME其原理可从 plugins/analytics/src/lib.rs 的export_types测试看出make_specta_builder收集commands::event、commands::set_disabled等全部命令通过tauri_specta::Builder::export配合specta_typescript的 prettier formatter 输出到./js/bindings.gen.ts并自动写入// ts-nocheck头。apps/desktop侧则通过import { commands } from anlg/plugin-analytics直接使用这些绑定见 apps/desktop/src/analytics.ts 与 apps/desktop/src/auth/auth-analytics.ts。因此 codegen 本质是以测试驱动的方式导出类型新增命令后重跑该脚本即可让前端类型与 Rust 端保持一致。五、四处集成点把插件接入桌面端技能列出的集成点共四处缺一不可集成点作用analytics 实例根 Cargo.toml声明插件 crate 为 workspace 依赖tauri-plugin-analytics { path plugins/analytics }apps/desktop/src-tauri/Cargo.toml让桌面端可链接该插件tauri-plugin-analytics { workspace true }apps/desktop/package.json让前端可 import 绑定包anlg/plugin-analytics: workspace:*apps/desktop/src-tauri/capabilities/default.json为主窗口授予插件权限analytics:default能力声明Tauri 2 权限模型的关键一环最后一步常被忽略却至关重要Tauri 2 的命令调用受 capabilities 权限约束未在default.json的permissions数组中声明analytics:default即plugins/analytics/permissions/default.toml与autogenerated/commands/*.toml定义的能力集合前端调用会被拒绝。新插件需在 apps/desktop/src-tauri/capabilities/default.json 追加形如NAME:default的条目并同步维护plugins/NAME/permissions/下的能力定义。六、收尾依赖安装与验证完成apps/desktop/package.json更新后必须执行pnpm i以更新 pnpm-lock 并链接新 workspace 包。随后可依次验证pnpm -F anlg/plugin-NAME codegen生成绑定、pnpm -F anlg/plugin-NAME typecheck通过类型检查、cargo check -p tauri-plugin-NAME通过编译以及plugins/analytics中test_analytics、fire_and_forget_admission_is_bounded这类 Rust 单测见 plugins/analytics/src/lib.rs在桌面端mock_builder环境下验证插件生命周期与状态管理的范式。七、快速核对清单按.agents/skills/add-plugin/SKILL.md收尾时逐项确认npx tauri-apps/cli plugin new NAME --no-example --directory ./plugins/NAME已执行已删除生成的rollup.config.js与README.mdtsconfig.json继承../tsconfig.base.json且只包含js/package.json命名为anlg/plugin-NAME含codegen/typecheck脚本ext.rs与commands.rs保留默认ping命令pnpm -F anlg/plugin-NAME codegen已生成js/bindings.gen.ts根Cargo.toml、apps/desktop/src-tauri/Cargo.toml、apps/desktop/package.json、apps/desktop/src-tauri/capabilities/default.json四处已更新更新apps/desktop/package.json后已执行pnpm i。【免费下载链接】anarlogOpen source Granola AI Alternative项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/16 11:45:46

知了大模型:中文优化的MoE架构AI实践解析

1. 知了大模型技术解析与应用实践最近在AI领域掀起了一波大模型应用的讨论热潮,其中"知了大模型"这个项目引起了我的特别关注。作为一名长期关注自然语言处理技术发展的从业者,我想分享一下对这个项目的技术解析和实践思考。知了大模型本质上是…

2026/9/16 11:45:46

全桥LLC谐振变换器设计与双环控制策略

1. 全桥LLC谐振变换器概述全桥LLC谐振变换器作为现代电力电子领域的重要拓扑结构,在工业电源、电动汽车充电桩等场合得到了广泛应用。这种变换器之所以备受青睐,关键在于其独特的软开关特性——通过合理设计谐振腔参数,可以实现主开关管的零电…

2026/9/16 12:46:00

51单片机红外解码与数码管显示:NEC协议时序测量实战

简介:一份面向51单片机初学者的红外解码与数码管显示综合实例,来源于51单片机教程系列第117讲。资源围绕红外接收、协议解码、动态扫描显示等核心知识点展开,适合入门者巩固定时器、中断和I/O控制技术。压缩包仅15KB,共11个文件&a…

2026/9/16 12:46:00

23款AI写作工具实测:学术论文高效写作全攻略

1. 论文写作工具测评背景与价值作为一名经历过自考论文写作全过程的过来人,我深刻理解学术写作中遇到的三大痛点:文献检索效率低、格式规范难把握、写作过程缺乏智能辅助。去年撰写教育管理专业毕业论文时,我耗时两个月测试了市面上23款AI写作…

2026/9/16 12:46:00

北方苍鹰优化算法(NGO)的Matlab实现与改进

1. 北方苍鹰优化算法(NGO)概述北方苍鹰优化算法(Northern Goshawk Optimization,简称NGO)是近年来提出的一种新型元启发式算法,灵感来源于北方苍鹰在自然界中的捕猎行为。这种猛禽以其卓越的狩猎策略闻名—…

2026/9/16 12:46:00

Java录屏录音实战:JavaCV+FFmpeg实现MP4视频与AAC音频同步编码

简介:一份JavaFX桌面录屏录音软件项目源码,面向Java桌面应用与多媒体处理的开发者。项目完整实现录屏、录音、暂停、播放、MP4保存等功能,覆盖从界面搭建到音视频流处理的常见路径。压缩包共48个文件,以PNG截图、Java源码、class编…

2026/9/16 12:40:59

AI写作助手如何解决学术论文的结构化难题

1. 论文写作困境的本质剖析本科阶段的论文写作往往陷入一种"焦虑填空"的怪圈:学生手头堆积着零散的文献片段、未成形的观点和导师的碎片化建议,却缺乏将这些元素组织成有机整体的能力。这种困境源于三个层面的结构性矛盾:首先在认知…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码