SuperAPI AI 工具集

build-chrome-extension

编程与开发

查看项目

更新于 10-16 02:47

技能介绍

用途

该技能面向 Chrome Manifest V3 扩展的构建、调试、打包与发布。触发场景包括:新建 Chrome MV3 扩展或从框架(WXT、Plasmo、CRXJS、Vite)脚手架搭建;编辑或生成 manifest.json(manifest_version: 3、service_worker、content_scripts、host_permissions、action、side_panel 等字段);实现或调试 chrome.runtime、chrome.storage、chrome.alarms、chrome.scripting、chrome.tabs、chrome.declarativeNetRequest、chrome.sidePanel、chrome.offscreen 等 API;将扩展连接到桌面应用或本地守护进程(Raycast Companion、本地 WebSocket、Native Messaging);修复 MV3 service worker 生命周期问题;在 ISOLATED 与 MAIN world 之间桥接 content scripts;将 MV2 迁移到 MV3;校验构建产物、打包 Web Store zip、撰写隐私与权限说明。

不适用场景:目标为 Firefox、Safari 或跨浏览器 polyfill;扩展上下文之外的通用浏览器自动化;发布普通 npm 包;构建其他平台的扩展(Raycast 脚本命令、VS Code 扩展、Edge 企业策略包)。

主要能力

技能内置一组固定默认值:仅生成 manifest_version: 3;新项目默认使用 WXT;持久状态用 chrome.storage.local,临时重启安全状态用 chrome.storage.session;后台采用事件驱动 service worker,监听器在顶层同步注册;周期任务用 chrome.alarms;网络修改用 chrome.declarativeNetRequest;权限遵循最小特权,优先 optional_permissions 与 optional_host_permissions;Chrome 加载构建输出目录而非源码;桌面 IPC 优先本地 WebSocket,系统级工具用 Native Messaging;打包前运行 scripts/check-mv3-manifest.sh 与 scripts/preflight-extension.sh。

技能还列出常见 MV3 陷阱:service worker 约 30 秒空闲终止,模块级全局状态会丢失;监听器必须顶层同步注册;setTimeout/setInterval 无法维持 worker 存活;Chrome 148+ 的 onMessage 支持返回 Promise,旧版本需同步返回 true 并调用 sendResponse;本地 WebSocket 空闲约 30 秒断开,需心跳;127.0.0.1 的 WebSocket 需防 CSWSH,校验 Origin 并要求认证令牌;Native Messaging 主机不得向 stdout 写日志,消息上限 1 MB;content scripts 默认隔离世界;扩展源 fetch 需匹配 host_permissions;MV3 CSP 禁止内联脚本、eval、远程可执行代码;manifest 路径必须指向构建产物;避免安装时请求 <all_urls>。

使用方式

工作流程分为六步:1)界定扩展范围,列出所需界面、Chrome API、权限,区分安装时与可选权限,选择框架,记录构建输出目录;2)脚手架或适配,新项目默认 WXT,现有 Vite 应用用 CRXJS,自定义构建用 vanilla + Vite;3)实现扩展上下文,按需阅读 service-worker、content-scripts、ui-surfaces、messaging、desktop-ipc、storage、core-apis 等参考文档,并校验跨边界载荷;4)校验构建输出,运行两个脚本并确认 manifest 路径存在;5)测试扩展行为,单元测试纯逻辑,手动加载构建输出,检查 service worker 空闲/唤醒、content script 注入、权限请求 UX;6)打包上架,构建生产输出,运行脚本,清理 source map、测试文件等,从构建输出目录内创建 zip,准备隐私实践、权限说明、远程代码披露、审核测试说明。

适用场景

适合需要构建或维护 Chrome MV3 扩展的开发者,尤其是涉及 service worker 生命周期、content script 隔离、权限最小化、MV2 迁移、桌面 IPC 连接以及 Web Store 上架准备的场景。

限制

技能不覆盖 Firefox、Safari 或跨浏览器 polyfill;不处理扩展上下文之外的浏览器自动化;不负责发布 npm 包;不覆盖其他平台扩展。部分具体实现细节、脚本内容、参考文档内容以及收费、价格、平台支持等信息暂未提供。