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

Plasmo 0.90.5 Firefox MV3生产构建消息传递报错求助

解决Plasmo 0.90.5构建Firefox MV3扩展时内容脚本未加载的问题

核心问题定位

你碰到的本质是Plasmo生产构建时,内容脚本的注入逻辑或打包配置在Firefox MV3环境下出现异常,导致脚本没加载,进而触发消息通信失败的报错Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.,而开发模式因为有热重载和调试机制,规避了这个问题。

具体修复方案

  • 检查内容脚本匹配规则:Plasmo生产构建可能对matches规则做了优化,Firefox MV3对通配符的解析和Chrome有差异。如果用了*://*/*,拆成https://*/*和http://*/*分开配置,避免合并通配符导致的解析异常。
  • 验证生产打包路径:打开Firefox扩展调试工具的「内容脚本」面板,确认脚本的实际加载路径是否正确。如果路径错误,检查plasmo.config.ts的build配置,确保target: "firefox-mv3"时的输出路径配置无遗漏或错误。
  • 添加Firefox专属配置:在plasmo.config.ts里明确指定Firefox MV3的构建配置,避免Plasmo用通用规则打包:
    export default defineConfig({
      browsers: [
        {
          name: "firefox",
          manifestVersion: 3
        }
      ],
      // 其他原有配置
    })
    
  • 防止内容脚本被摇树优化移除:生产构建的Tree Shaking可能误删内容脚本的触发逻辑,在脚本顶部加一段无意义代码兜底:
    // 避免被生产构建优化移除
    if (typeof window !== "undefined") {
      window._plasmo_cs_loaded = true;
    }
    
    也可以临时禁用优化排查:
    export default defineConfig({
      build: {
        minify: false,
        treeShake: false
      }
    })
    
  • 清理构建缓存重编:执行plasmo clean清空缓存后,再重新运行plasmo build --target=firefox-mv3,避免旧缓存导致的配置异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:12:37