首页 / 浏览器扩展开发入门教程 / 加载与调试扩展

浏览器扩展开发入门教程

加载与调试扩展

本教程共 56 篇 · 第 46 篇 · 更新于 2026-08-13 · 约 7 分钟阅读

加载扩展调试chrome://extensions开发者模式Load Unpacked重新加载错误页

本节目标:学完你能在 chrome://extensions 打开开发者模式,把本地扩展目录加载进浏览器,看懂卡片上的按钮,知道改完代码什么时候要重新加载,并用错误页第一时间定位问题。

写扩展和写普通网页最大的不同,是它没有一个 index.html 双击就能跑。你得把整个扩展目录”装”进浏览器,浏览器才会按 manifest.json 的声明把各个组件跑起来。这一节讲的就是这套加载与调试的基本功,后面每一章的调试都建立在它之上。

46-1 打开扩展管理页与开发者模式

先在地址栏输入 chrome://extensions 回车(Edge 里输入 edge://extensions,界面几乎一样)。这就是扩展管理页,你装过的所有扩展都排在这里。

页面右上角有一个”开发者模式”开关,默认是关的,把它打开。普通用户用不到它,但对开发者来说这是总开关:只有开了它,页面顶部才会多出”加载已解压的扩展程序""打包扩展程序""更新”三个按钮,扩展卡片上也才会出现调试相关的入口。

Note

开发者模式是浏览器级别的设置,开一次就一直生效,换个扩展不用重开。合上开关只是把这些开发者入口藏起来,不会卸载你已加载的扩展。

46-2 用 Load Unpacked 加载未打包扩展

开发阶段的扩展是一个普通文件夹,里面至少有一个 manifest.json。要把它跑起来,用的就是”加载已解压的扩展程序”(Load Unpacked)。

  1. 确认扩展目录里有 manifest.json,而且它就在文件夹根目录,不要多套一层。
  2. 点页面左上角的”加载已解压的扩展程序”按钮。
  3. 在弹出的选择框里,选中扩展所在的文件夹(不是选某个文件),确定。

加载成功后,管理页上会立刻出现一张属于你的扩展卡片。这时扩展就已经真正在浏览器里运行了:声明了 action 的会在工具栏出图标,声明了 content_scripts 的会在匹配页面注入脚本。

Tip

选文件夹时一定要选到含 manifest.json 的那一层。新手常见错误是选了外面的父目录,结果浏览器找不到清单,直接报错加载失败。

46-3 看懂扩展卡片上有什么

加载后的卡片信息量不小,值得逐个认一遍:

  • 名称、版本、描述:直接来自 manifest.jsonnameversiondescription
  • 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 常见加载失败与排查清单

再补几个高频场景,遇到时对号入座:

  1. “Manifest file is missing or unreadable”:多半是选错了文件夹,没选到含 manifest.json 的那层,重新选一次。
  2. “Could not load manifest”:清单 JSON 语法错了,用编辑器格式化一下,找出多余逗号或引号问题。
  3. 图标不显示iconsaction.default_icon 指向的图片路径不对,检查文件名和目录。
  4. 改了没生效:回到 46-4 的表,确认你改的这类文件到底要不要重新加载。
Note

把报错原文整段复制到搜索引擎,往往一搜就有答案。扩展的错误信息大多很直白,读懂它比记住它更重要。

46-7 一套固定的调试起手式

最后给一套固定流程,几乎所有扩展问题都能照着往下走:

  1. 打开 chrome://extensions,确认开发者模式已开。
  2. 用”加载已解压的扩展程序”选中扩展目录加载。
  3. 看卡片”错误”按钮是否变红,红了就点开读原文。
  4. 改完代码,按 46-4 的规则决定是否点”重新加载”。
  5. 触发对应功能,确认效果符合预期;不对就再回到第 3 步。

把这套起手式练成肌肉记忆,你就再也不会卡在”装不上""改了没反应”这些入门障碍上。至于 popup、内容脚本、后台各自的调试面板怎么开、怎么看日志,我们放到下一章逐个拆解。