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

Chrome扩展导入模块至background.js遇Service worker注册失败(状态码15)

Chrome扩展Service Worker注册失败(错误码15)解决办法

针对你在background.js中导入ES模块时出现的"Service worker registration failed. Status code: 15"错误,以下是具体排查和解决步骤:

1. 确保manifest.json正确配置Service Worker为模块类型

Chrome扩展的Service Worker要启用模块支持,必须在manifest的background字段中明确设置type: "module",而非仅在HTML中添加module属性。示例配置:

{
  "manifest_version": 3,
  "background": {
    "service_worker": "background.js",
    "type": "module"
  },
  // 其他扩展配置...
}

2. 验证导入路径的完整性

Service Worker的ES模块导入要求完整的相对路径+文件后缀,不能省略.js后缀,也不能使用裸模块路径:

  • 正确写法:import { searchTransform, inputLang } from "./index.js";
  • 错误写法:import { searchTransform, inputLang } from "./index";(缺后缀)

同时确认index.js与background.js处于同一目录,若不在同一目录,需调整路径(如./src/index.js)。

3. 检查导出模块的规范

确保index.js使用标准ES模块导出语法,而非CommonJS:

// index.js 正确导出方式
export const searchTransform = () => { /* ... */ };
export const inputLang = "zh-CN";

若index.js内部还有其他导入,也要保证所有依赖都符合ES模块规范。

4. 验证内容安全策略(CSP)配置

Manifest V3的扩展页面(含Service Worker)的CSP必须允许script-src 'self',否则模块加载会被拦截。示例配置:

"content_security_policy": {
  "extension_pages": "script-src 'self'; object-src 'none';"
}

5. 清除缓存并重新加载扩展

旧的Service Worker缓存可能导致异常,按以下步骤操作:

  • 打开Chrome扩展管理页面(chrome://extensions/)
  • 开启"开发者模式",找到你的扩展,点击"重新加载"按钮
  • 或访问chrome://serviceworker-internals/,找到对应扩展的Service Worker,点击"Unregister"后重新加载扩展

内容的提问来源于stack exchange,提问作者Nikolai Alexander Verner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:05:22