【问题标题】:How to solve error "Firefox can’t find the file at moz-extension://......" when running a built blank Quasar BEX ("quasar dev -m bex" works)运行构建的空白 Quasar BEX(“quasar dev -m bex”有效)时,如何解决错误“Firefox 在 moz-extension://...... 找不到文件”
【发布时间】:2021-07-31 22:14:02
【问题描述】:

这些是我运行的命令(我没有以任何方式更改代码):

quasar upgrade -i
mkdir folder
cd folder
quasar create
quasar mode add bex
npm i
quasar build -m bex
cd /dist/bex/UnPackaged && web-ext sign --api-key ... --api-secret ...

然后我将签名的 .xpi 文件(在文件夹 ./web-ext-artifacts/ 中)拖放到 Debian 10 stable (78.12.0esr) 中的最新 Firefox ESR 中并安装了插件(没有安装其他插件/在该 Firefox 配置文件中运行)。当我在 Firefox 完成安装后单击右上角的 Quasar (v2.0.1) 图标时,它会显示此错误页面:

File not found Firefox can’t find the file at moz-extension://extension-id/www/index.html.

而不是正确的 Vue/Quasar 页面。未签名的插件也会发生同样的情况(在设置 xpinstall.signatures.required 以启用安装之后),但在运行 quasar dev -m bex 时它确实可以正常工作。

为什么会这样以及如何解决?

这似乎是由于使用 build-command 而不是 dev 命令时文件路径的问题。可以更改地址栏中的 url 以显示页面,但我也不能更改所有使用 'index.html' 或 process.env.DEV 使其工作的地方,也不是我认为应该工作的构建过程(按原样;如前所述,我只为完全空白的 BEX 运行了这几个命令,并没有更改测试代码)。

【问题讨论】:

    标签: firefox-addon quasar-framework


    【解决方案1】:

    自从quasar: 2.0.0-beta.1 移至稳定版后,这似乎是一个错误: 这不是一个好的长期解决方案,但我做了以下临时修复:

    安装执行器

    npm i execa
    

    在quasar.conf.js

    const execa = require('execa')
    ...
    
    build: {
    
    
      async afterBuild(cfg) {
        try {
          // bit of a hack to move the index.html into the www folder on build of Packaged
          const dirUnPackaged = cfg.quasarConf.bex.builder.directories.input
          const { stdout } = await execa('mv', [`${dirUnPackaged}/index.html`, `${dirUnPackaged}/www/`])
          console.log(stdout)
        } catch (error) {
          console.error(error.message)
        }
      },
    
    
    }
    

    基本上将index.html 文件移动到包中的www 文件夹中

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 1970-01-01
      • 2020-07-07
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 2020-07-07
      相关资源
      最近更新 更多