uTools 插件开发
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_39b984b3/utools-dev 技能,用于 uTools 插件开发。
技能介绍
写一个能用的 uTools 插件,难在哪
实际动手才会发现坑:plugin.json 字段写错插件打不开;开发时改了代码没生效;preload 被构建工具打包压缩,审核直接挂掉;或者缓存顺手写进 utools.db,插件被下架。这个技能的价值在于把约束前置——写代码之前先明确红线,而不是上线后才从审核意见里学到。
技能如何工作
围绕「规范 + 索引」组织,而不是把所有 API 抄一遍:
- 查文档优先:API 签名、参数、返回值都在
references/utools-api.md,需要时读取对应章节,不凭记忆猜测。 - 两套模板:Vue 3 + Vite 与 React + Vite 各一套目录结构;入口组件统一在
onMounted/useEffect中注册utools.onPluginEnter,根据action.code做功能路由。 - dev/build 分界:HMR 模式保留
development.main、接入public/;stripDevelopmentFieldvite 插件保证 build 后dist/plugin.json干净,产物由构建自动生成。
容易踩的几条红线
- preload 源码必须可读:CommonJS 写法、不打包不混淆,
preload/下放{"type":"commonjs"},第三方依赖放同级node_modules不编译,只通过window.xxx暴露必要能力。 - utools.db 只存用户主动创建的数据:笔记、收藏、用户配置可以;缓存、日志、临时状态、统计计数一律用
dbStorage或内存变量。这条直接关系能否上架。 - 平台细节:路径一律
path.join(),不硬编码分隔符;type: "window"的class字段仅 Windows 有效;macOS 的app字段带.app后缀;部分 API 在 Linux 不可用。
什么时候不该用它
技能只覆盖 uTools 插件开发,不涉及插件分发、商店运营或跨设备同步策略设计;它也不替代官方文档——需要某个 API 的完整签名时,正确动作是打开 references/utools-api.md 对应章节。
使用场景
- 独立开发 uTools 插件时,基于 Vue 3 + Vite 或 React + Vite 模板搭项目骨架,配置 plugin.json 的 main 与 preload 字段
- 本地联调需要热更新,按 dev/build 双模式接入 public/ 与 development.main,发布前确认 build 产物干净无残留
- 为插件编写 preload 原生脚本,用 CommonJS 通过 window.xxx 向渲染进程暴露能力,保持源码可读以通过审核
- 插件要存用户笔记、收藏等数据,需要区分 utools.db 的适用边界,把缓存和日志改用 dbStorage 或内存变量
适合人员
- 想上架自己第一个 uTools 插件的独立开发者,需要避开 preload 混淆和 db 滥用这类审核红线
- 熟悉 Vue 或 React 的前端工程师,第一次把现有页面改造成 uTools 插件并接入 HMR 调试
- 用 AI 辅助写插件代码的工程师,要求生成的调用符合平台规范而非凭记忆捏造 API
- 给团队工具做 uTools 版客户端的开发者,需要统一目录结构、preload 规范和数据存储方案