第一部分 — 基础知识 项目框架与文件布局

2.1 目的

稳定的布局使 MV3 更容易调试、审查和扩展。 本章提供了一个枯燥但可调试的基本结构。

2.2 使用场景 / 避免场景

使用场景: 开始一个新的扩展, 或者清理迁移工作。

避免场景: 探索单一 API。

2.3 最小化文件布局(推荐)

复制代码
my-ext/
  manifest.json
  sw.js
  popup.HTML
  popup.js
  options.HTML
  options.js
  content.js
  assets/

为什么这种布局有效:

  • sw.js 是你的协调者(路由 + 权限 + 状态)

  • UI 代码保留在 UI 文件中(DOM + 用户体验)

  • 页面逻辑保留在 content.js 中(DOM + 页面具体信息)

2.4 最小化 manifest.json

javascript 复制代码
{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "1.0.0",
  "action": { "default_popup": "popup.HTML" },
  "background": { "service_worker": "sw.js", "type": "module" },
  "permissions": ["storage"],
  "host_permissions": [],
  "content_scripts": [
    {
      "matches": ["HTTPS://example.com/*"],
      "js": ["content.js"],
      "run_at": "document_idle"
    }
  ]
}

2.5 最小化 sw.js(以路由为主)

这段代码会引起接口的 566 错误,所以只好放截图

最小示例

一个最小的 MV3 安全异步消息处理程序(适合作为模板使用):

javascript 复制代码
chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  (async () => {
    if (msg?.type !== "PING") return;
    sendResponse({ ok: true });
  })().catch((err) => sendResponse({ ok: false, error: String(err) }));
  return true; // keep channel open for async
});

2.7 事项清单

  • \] sw.js 文件较小且主要负责路由和协调

  • \] 内容脚本执行页面工作并具有幂等性

2.8 参考资料

相关推荐
DYuW5gBmH13 分钟前
Chrome DevTools MCP 让 AI 无缝接管浏览器调试会话
前端·chrome·chrome devtools
qq12_81151751540 分钟前
Java Web 影城会员管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
java·前端·mybatis
weixin199701080161 小时前
《中控网商品详情页前端性能优化实战》
前端·性能优化
wuhen_n2 小时前
LangChain Agents 实战:构建智能文件管理助手
前端·javascript·人工智能·langchain·ai编程
Vfw3VsDKo2 小时前
Flink源码阅读:Netty通信
java·前端·flink
别抢我的锅包肉2 小时前
【FastAPI】 + SQLAlchemy 异步 ORM 实现完整 CRUD 操作
前端·fastapi
tq6J5Yg143 小时前
windows10本地部署openclaw
前端·python
ISkp3V8b44 小时前
从 ReAct 到 Workflow:基于云端 API 构建事件驱动的智能体
前端·react.js·前端框架
星空4 小时前
前端--A_1--THML标签
前端
GISer_Jing4 小时前
前端架构师视角:Electron 知识框架全解析(含实战+面试)
前端·面试·electron