Ubuntu 上的 Firefox 无法从文件协议加载源映射

Ubuntu 上的 Firefox 无法从文件协议加载源映射

我正在开发一个使用捆绑 JavaScript 的 Web 应用程序。为了从我的本地 Web 服务器调试此代码,我使用了源映射。由于捆绑过程会从我的计算机上的各个位置收集源文件,因此 (Apache) Web 服务器无法使用这些源文件。

我的问题是,当尝试在开发工具中打开源文件时,Firefox 可以在控制台中正确显示文件名和行,但是,它会出现此错误:

Error while fetching an original source: can't assign to property "metadata" on "unsupported protocol for sourcemap request file:///var/[ ... ]": not an object
Source URL: <unknown>

当我将文件 URL 复制到另一个浏览器窗口时,它会正常加载,我通过 tarball 而不是 snap 安装 Firefox,因此可以访问系统文件。在 Chrome 中,源代码加载正常,调试工作按预期进行。但是,我还需要使用 Firefox 调试器。

是否有隐藏的配置选项或启动标志可以修改哪些源可用于源映射?我能想到的唯一替代方案是创建一个虚拟主机来托管这些资源并从那里创建符号链接,这会非常烦人。

编辑:这是我的源图的样子

{
    "version": 3,
    "sourceRoot": "",
    "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;[ ... ]",
    "names": [],
    "sources": [
        "file:///var/[ ... ]",
        "file:///var/[ ... ]",
        "file:///var/[ ... ]",
        "file:///var/[ ... ]",
        [ ... ]
    ]
}

答案1

Firefox 阻止 http 页面访问file://。您必须从 提供测试页面file://,或者设置另一个 apache/另一个 vhost 来从 提供/var所需的文件。

看:https://searchfox.org/mozilla-central/source/devtools/client/shared/source-map-loader/utils/network-request.js

"http:", "https:", "data:"始终受支持。"chrome:", "file:", "moz-extension:"仅当它们与页面源匹配时才可用。

您可以sourceRoot为源映射设置一个值,指向将提供文件服务的特殊 apache/vhost /var

相关内容