加载与调试扩展
本教程共 56 篇 · 第 46 篇 · 更新于 2026-08-13 · 约 7 分钟阅读
本节目标:学完你能在
chrome://extensions打开开发者模式,把本地扩展目录加载进浏览器,看懂卡片上的按钮,知道改完代码什么时候要重新加载,并用错误页第一时间定位问题。
写扩展和写普通网页最大的不同,是它没有一个 index.html 双击就能跑。你得把整个扩展目录”装”进浏览器,浏览器才会按 manifest.json 的声明把各个组件跑起来。这一节讲的就是这套加载与调试的基本功,后面每一章的调试都建立在它之上。
46-1 打开扩展管理页与开发者模式
先在地址栏输入 chrome://extensions 回车(Edge 里输入 edge://extensions,界面几乎一样)。这就是扩展管理页,你装过的所有扩展都排在这里。
页面右上角有一个”开发者模式”开关,默认是关的,把它打开。普通用户用不到它,但对开发者来说这是总开关:只有开了它,页面顶部才会多出”加载已解压的扩展程序""打包扩展程序""更新”三个按钮,扩展卡片上也才会出现调试相关的入口。
Note开发者模式是浏览器级别的设置,开一次就一直生效,换个扩展不用重开。合上开关只是把这些开发者入口藏起来,不会卸载你已加载的扩展。
46-2 用 Load Unpacked 加载未打包扩展
开发阶段的扩展是一个普通文件夹,里面至少有一个 manifest.json。要把它跑起来,用的就是”加载已解压的扩展程序”(Load Unpacked)。
- 确认扩展目录里有
manifest.json,而且它就在文件夹根目录,不要多套一层。 - 点页面左上角的”加载已解压的扩展程序”按钮。
- 在弹出的选择框里,选中扩展所在的文件夹(不是选某个文件),确定。
加载成功后,管理页上会立刻出现一张属于你的扩展卡片。这时扩展就已经真正在浏览器里运行了:声明了 action 的会在工具栏出图标,声明了 content_scripts 的会在匹配页面注入脚本。
Tip选文件夹时一定要选到含
manifest.json的那一层。新手常见错误是选了外面的父目录,结果浏览器找不到清单,直接报错加载失败。
46-3 看懂扩展卡片上有什么
加载后的卡片信息量不小,值得逐个认一遍:
- 名称、版本、描述:直接来自
manifest.json的name、version、description。 - ID:一串字母,是这个扩展的唯一标识,日志和
chrome-extension://地址里都会用到它。 - 详情:点开能看到权限、来源、大小等完整信息。
- 移除:把扩展从浏览器卸载。
- 开关:临时停用/启用扩展,不用每次都卸载重装。
- 重新加载(圆形箭头图标):让扩展按最新代码重新跑一遍,调试时最常点。
- 错误:只有出问题时才变红显示,点开是错误详情。
- Service Worker / 检查视图:声明了后台的扩展会有这一行,点它打开后台调试面板。
把这张卡片当成扩展的”仪表盘”,调试时你的视线基本都在这里来回扫。
46-4 改完代码,什么时候要重新加载
这是新手最容易踩的坑:明明改了代码,效果却没变。原因是不同组件的刷新规则不一样。有的改完要手动重新加载扩展,有的只要重新打开就行。
| 修改的部分 | 是否需要重新加载扩展 |
|---|---|
manifest.json 清单 | 需要 |
| 服务工作者(后台脚本) | 需要 |
| 内容脚本 content script | 需要(并且要刷新宿主页面) |
| popup 弹出页 | 不需要 |
| options 选项页 | 不需要 |
| 其他扩展 HTML 页面 | 不需要 |
记忆方法很简单:清单、后台、内容脚本这三样,改了就去卡片上点”重新加载”;而 popup、options 这类页面,关掉再打开就是最新的,因为它们每次打开都会重新加载 HTML 和脚本。
Tip内容脚本要注意”两步刷新”:先在扩展卡片上重新加载扩展,再刷新你测试的那个网页。只做一步,注入的还是旧脚本。
46-5 用错误页排查加载失败
如果加载后卡片上出现红色的”错误”字样,说明浏览器在加载或运行时记录到了问题。点开它,会列出每一条错误的原文、发生的上下文,有时还带出错文件和行号。
调试时的第一反应就应该是:先看”错误”按钮亮没亮,亮了先点开读原文,而不是自己瞎猜。常见的加载期错误包括:
- 清单是无效的 JSON(比如多写了逗号、少了引号),浏览器根本解析不了。
manifest_version没写成数字3,或者误写成了字符串。- 引用的文件不存在,比如
default_popup指向的 HTML 拼错了路径。
下面这份清单就踩了两个雷,加载时必定失败(错误示范,切勿照抄):
{
"manifest_version": "3",
"name": "Demo",
"version": "1.0",
"action": {
"default_popup": "popup.html",
}
}
问题在于 manifest_version 被写成了字符串 "3",以及 default_popup 那行末尾多了一个逗号。改成数字 3、删掉多余逗号,就能正常加载。
看完错误、改完代码后,点一次卡片上的”重新加载”,红色错误通常就会消失。如果没消失,说明还有其他问题,继续读新的报错。
46-6 常见加载失败与排查清单
再补几个高频场景,遇到时对号入座:
- “Manifest file is missing or unreadable”:多半是选错了文件夹,没选到含
manifest.json的那层,重新选一次。 - “Could not load manifest”:清单 JSON 语法错了,用编辑器格式化一下,找出多余逗号或引号问题。
- 图标不显示:
icons或action.default_icon指向的图片路径不对,检查文件名和目录。 - 改了没生效:回到 46-4 的表,确认你改的这类文件到底要不要重新加载。
Note把报错原文整段复制到搜索引擎,往往一搜就有答案。扩展的错误信息大多很直白,读懂它比记住它更重要。
46-7 一套固定的调试起手式
最后给一套固定流程,几乎所有扩展问题都能照着往下走:
- 打开
chrome://extensions,确认开发者模式已开。 - 用”加载已解压的扩展程序”选中扩展目录加载。
- 看卡片”错误”按钮是否变红,红了就点开读原文。
- 改完代码,按 46-4 的规则决定是否点”重新加载”。
- 触发对应功能,确认效果符合预期;不对就再回到第 3 步。
把这套起手式练成肌肉记忆,你就再也不会卡在”装不上""改了没反应”这些入门障碍上。至于 popup、内容脚本、后台各自的调试面板怎么开、怎么看日志,我们放到下一章逐个拆解。