使用crxjs插件编写浏览器扩展插件遇到的问题 Waiting for the extension service worker...

目前最新的@vitejs/plugin-vue和@crxjs/vite-plugin不兼容,在crxjs官网有写在这里插入图片描述
修改插件版本如下:

"devDependencies": {
    "@crxjs/vite-plugin": "^1.0.14",
    "@vitejs/plugin-vue": "^2.3.4",
    "vite": "^2.9.9",
    "vue": "^3.5.13"
  }

然后启动不报错了,在manifest.json中添加content_scripts配置后,浏览器扩展插件展示报错
在这里插入图片描述
猜测可能是新版浏览器和@crxjs/vite-plugin不兼容,毕竟1.0.14也是三年前的版本了。经过排查之后发现是node_modules/@crxjs/vite-plugin/dist/index.cjs 中 3448行:

var workerHmrClient = "const ownOrigin = new URL(chrome.runtime.getURL(\"/\")).origin;\nself.addEventListener(\"fetch\", (fetchEvent) => {\n  const url = new URL(fetchEvent.request.url);\n  if (url.origin === ownOrigin) {\n    fetchEvent.respondWith(sendToServer(url));\n  }\n});

url.origin === ownOrigin 这两个值一直不相等,问了下AI说:“Chrome扩展在开发模式下每次热更新时,Vite可能会生成新的扩展ID”,查了下2.0.0-beta.32版本中对应的代码

const ownOrigin = new URL(chrome.runtime.getURL(\"/\")).origin;
// 改为
const ownOrigin = `chrome-extension://${chrome.runtime.id}`;

就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓_枫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值