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

加载已解包的Node.js前后端扩展时Service Worker出现脚本获取未知错误

问题分析与解决

核心错误原因

你犯了一个本质性错误:Service Worker是运行在浏览器环境的前端脚本,完全不支持Node.js专属模块。你的代码里导入了express(Node.js后端框架)和python-shell(Node.js调用Python的工具),这些模块只能在Node.js环境运行,浏览器(包括Service Worker)根本识别不了,这才是导致脚本加载失败的真正原因。

和证书的关系

已解包的Chrome扩展在本地加载时,Chrome默认允许明文资源访问,不需要HTTPS证书,所以你过期的Chrome证书和这个错误完全无关,不用在这上面浪费时间。

正确的方案调整

1. 拆分职责

  • 把Express服务器和Python调用逻辑单独做成一个独立的Node.js后端服务,不要放在Service Worker里。
  • Service Worker只负责前端的缓存、请求拦截等浏览器端任务,示例代码:
// 标准Service Worker示例(仅处理前端逻辑)
self.addEventListener('fetch', (event) => {
  // 拦截请求并做缓存处理
  event.respondWith(
    caches.match(event.request)
      .then((response) => response || fetch(event.request))
  );
});

2. 扩展与后端通信

你的前端扩展页面(比如popup、content script)通过fetch或XMLHttpRequest调用独立运行的Node.js后端服务的API接口,实现数据交互。

3. Node.js服务代码修正

将原有Node.js逻辑单独存为服务文件(比如server.js),通过node server.js启动:

// server.js(独立Node.js服务)
import express from 'express';
import PythonShell from 'python-shell';

const app = express();
 
app.use(express.static('public'));
app.use(express.json({limit: '1mb'}))

app.post('/api', (request, response)=>{
  // 你的业务逻辑代码
});

PythonShell.run('your-script.py', {}, (err, results) => {
  // Python脚本调用逻辑
});

app.listen(3000, () => {
  console.log('服务运行在http://localhost:3000');
});

内容的提问来源于stack exchange,提问作者ayuval

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:05:18