You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manifest V3扩展迁移遇问题:Service Worker注册失败及JSON解析错误求助

Manifest V3迁移:Service Worker错误排查与修复

错误1:Service worker registration failed. Status code: 15

这个错误基本都是Manifest配置或文件路径问题,按以下步骤排查:

  • 检查manifest.json中的service_worker字段:路径必须是相对于扩展根目录的正确路径,比如"service_worker": "sw.js",不能写./sw.js这类相对路径,也不能拼写错误。
  • 确认manifest.json的manifest_version字段是3,且name、version这类必填字段完整无缺。
  • 检查Service Worker文件(比如sw.js)是否存在于指定路径,文件本身有没有低级语法错误(比如括号不闭合、引号漏写)。
  • 排查扩展权限:如果Service Worker用到了storage、declarativeNetRequest这类API,必须在manifest.json的permissions字段中声明。

错误2:Uncaught SyntaxError: Unexpected token 'o', "[object Promise]" is not valid JSON

这个错误核心是把Promise对象当成JSON字符串传给了JSON.parse(),常见场景和修复:

  • 比如你写了类似这样的错误代码:
    // 错误:直接用chrome.storage.get的返回值(Promise)去解析JSON
    const data = JSON.parse(chrome.storage.local.get('userData'));
    
    正确写法应该用await或.then()处理Promise,拿到实际数据后再操作:
    // 正确写法(需在async函数内)
    const result = await chrome.storage.local.get('userData');
    const data = result.userData; // 如果存储的是JSON字符串,再执行JSON.parse(data)
    
  • 排查所有调用JSON.parse()的地方,确保传入的是字符串类型,而非Promise、对象这类非字符串值。

无法打开Inspect View的临时调试方案

如果Service Worker注册失败看不到Inspect链接,可以:

  1. 手动检查sw.js语法:把代码复制到Chrome控制台(F12)运行,看是否有语法报错。
  2. 修复Manifest配置和Service Worker的语法错误后,重新加载扩展(chrome://extensions/里点击刷新按钮),注册成功后就能看到Inspect链接。
  3. 也可以直接在Chrome地址栏输入chrome://serviceworker-internals/,找到你的扩展对应的Service Worker,点击“Inspect”尝试调试。

内容的提问来源于stack exchange,提问作者bland.life

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:25:10