mcpField
E
extension-dev

extension-dev

github.com/quangpl开发64206 次安装7 周前更新
代码仓库

关于 extension-dev

用于 Chrome 扩展开发的技能,可识别项目技术栈、查找相关文档、实现功能并辅助调试,适用于 WXT、CRXJS 或原生项目。

主要功能

  1. 01识别扩展与 UI 框架
  2. 02查找框架和 API 文档
  3. 03按框架惯例实现功能
  4. 04提供按运行上下文分类的调试指引
  5. 05涵盖扩展消息传递与热重载

适用场景

  1. 01开始处理不熟悉的扩展代码库
  2. 02为识别出的框架实现功能
  3. 03调试弹出窗口、内容脚本或服务工作线程

安装

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

$npx skills add https://github.com/quangpl/browser-extension-skills --skill extension-dev

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
chrome-api-quick-reference.md
debugging-guide.md
framework-detection.md
framework-styleguides.md
message-passing-patterns.md

详细介绍

扩展开发

🚀 升级到 Premium 在 https://app.extensionbooster.net/dashboard/services/extension-ai-kit 获取 Premium 版本

检测技术栈、查找文档、实现功能、调试。不要只做解释——执行整个工作流。

工作流(执行此流程)

步骤 1:检测框架和 UI 技术栈

运行检测(参见 references/framework-detection.md):

ls wxt.config.ts crxjs.config.ts vite.config.ts manifest.json 2>/dev/null
cat package.json | grep -E '"wxt|crxjs|crxjs|react|vue|svelte"'
找到的文件框架
wxt.config.tsWXT
package.json 包含 crxjsCRXJS
vite.config 包含 @crxjsCRXJS
根目录中有 manifest.json,且以上文件均不存在Vanilla
步骤 2:获取框架文档和风格指南

使用 docs-seeker 技能或网页搜索,查找适用于检测到的技术栈的文档。

扩展框架文档:

UI 框架文档(根据检测到的框架获取):

框架文档风格指南
Reacthttps://react.devhttps://react.dev/learn
Next.jshttps://nextjs.org/docshttps://nextjs.org/docs/app
Vuehttps://vuejs.org/guidehttps://vuejs.org/style-guide
Sveltehttps://svelte.dev/docshttps://svelte.dev/docs
SolidJShttps://solidjs.com/docshttps://solidjs.com/guides
Angularhttps://angular.dev/guidehttps://angular.dev/style-guide

代码风格指南(始终遵循):

步骤 3:实现功能

遵循框架惯例:

  • WXT:在 entrypoints/ 中添加入口点,配置 wxt.config.ts
  • CRXJS:添加页面/标签页/内容脚本,使用 CSUI 构建内容 UI
  • CRXJS:采用标准的 Vite + 基于 manifest 的配置
  • Vanilla:编辑 manifest.json,直接添加 JS 文件

使用 Chrome API 时,请查阅 references/chrome-api-quick-reference.md。 如需在不同上下文之间进行消息传递,请查阅 references/message-passing-patterns.md。

步骤 4:调试

有关特定上下文的 DevTools 访问方式,请参阅 references/debugging-guide.md。

快速参考:

上下文检查方法
Service workerchrome://extensions →“inspect”链接
内容脚本页面 DevTools → Console → 选择扩展程序上下文
弹出窗口右键点击弹出窗口 → 检查
选项 / 侧边栏打开页面 → F12
步骤 5:设置热重载
框架命令备注
WXTpnpm dev完整 HMR,自动重新加载扩展程序
CRXJSpnpm dev弹出窗口/内容脚本的 HMR
CRXJSvite devVite HMR
Vanilla手动在 chrome://extensions 中重新加载

Chrome API 快速参考(前 20 项)

API用途权限
chrome.tabs查询、创建和更新标签页tabs
chrome.windows管理浏览器窗口windows
chrome.storage.local在本地持久化数据storage
chrome.storage.sync在设备间同步数据storage
chrome.storage.session仅限会话的数据storage
chrome.action工具栏图标、弹出窗口、徽章—
chrome.contextMenus右键菜单项contextMenus
chrome.sidePanel侧边栏 UIsidePanel
chrome.notifications桌面通知notifications
chrome.scripting向页面注入脚本/CSSscripting
chrome.runtime消息传递、生命周期、清单—
chrome.webRequest拦截/修改网络请求webRequest
chrome.declarativeNetRequest以声明方式阻止/重定向请求declarativeNetRequest
chrome.webNavigation跟踪页面导航事件webNavigation
chrome.identityOAuth2、Google 登录identity
chrome.alarms安排定期任务alarms
chrome.commands键盘快捷键commands
chrome.cookies读取/写入 Cookiecookies
chrome.history访问浏览器历史记录history
chrome.bookmarks读取/写入书签bookmarks

消息传递(快速模式)

一次性(弹出窗口 → service worker):

// sender
const response = await chrome.runtime.sendMessage({ type: "GET_DATA" });

// receiver (background)
chrome.runtime.onMessage.addListener((msg, sender, reply) => {
  if (msg.type === "GET_DATA") {
    reply({ data: "..." });
    return true;
  }
});

内容脚本 → service worker: 使用相同模式,异步时使用 return true。 针对特定标签页(后台 → 内容脚本):

chrome.tabs.sendMessage(tabId, { type: "ACTION" });

完整模式请参阅 references/message-passing-patterns.md。


参考资料

  • references/framework-detection.md — 检测 WXT/CRXJS/CRXJS/vanilla、开发命令
  • references/framework-styleguides.md — UI 框架文档、风格指南、扩展框架文档
  • references/chrome-api-quick-reference.md — 30 多个 API 及其权限和文档链接
  • references/message-passing-patterns.md — 所有消息传递模式及 TypeScript 示例
  • references/debugging-guide.md — 各上下文的 DevTools、常见错误和提示

相关技能

  • extension-create — 使用 WXT 搭建新扩展的框架
  • extension-manifest — 生成/验证 manifest.json
  • extension-test — 编写和运行扩展测试
  • extension-analyze — 分析现有扩展代码库

评论

支持 Markdown