Javascript 闭包编译器源代码映射=空(Chrome)或错误(Firefox)代码窗口

Javascript 闭包编译器源代码映射=空(Chrome)或错误(Firefox)代码窗口,javascript,google-chrome-devtools,google-closure-compiler,source-maps,firefox-developer-tools,Javascript,Google Chrome Devtools,Google Closure Compiler,Source Maps,Firefox Developer Tools,我在'src'文件夹中有一组JavaScript文件,由闭包编译器在'src/comp'中的单个文件cw-around.js中编译,生成的源映射cw-around.js.map也在'src/comp'中 “/#sourceMappingURL=xxx”位于编译文件cw-around.js的末尾。 xxx是指向cw-around.js.map的完整HTTP链接(本地web服务器),正在浏览器中成功测试。 {“version”:3,“file”:“cw-around.js”是cw-around.js

我在'src'文件夹中有一组JavaScript文件,由闭包编译器在'src/comp'中的单个文件cw-around.js中编译,生成的源映射cw-around.js.map也在'src/comp'中

“/#sourceMappingURL=xxx”位于编译文件cw-around.js的末尾。 xxx是指向cw-around.js.map的完整HTTP链接(本地web服务器),正在浏览器中成功测试。 {“version”:3,“file”:“cw-around.js”是cw-around.js.map文件的开头

在开发模式/源文件列表中,我可以看到Chrome和Firefox中的相关文件(当我输入错误的xxx时,我只能看到编译的cw-around.js文件)

在那里,当我双击相关文件(cw-demodata.js,编译文件中包含的JavaScript文件名之一)时:

  • 在Chrome 58或61中(“启用JavaScript源代码映射”+“检测到源代码映射”),将显示一个空代码窗口

  • 在Firefox 54中(“显示原始源代码”+“devtools.source map.locations.enabled;true”),显示我的呼叫网页的HTML代码。


  • 出了什么问题?如何调查以确定出了什么问题?

    我找到了一个解决方案:编译js文件并在与js文件相同的目录中生成源映射。相关的js文件现在在Chrome和Firefox中都正确显示

    以前,在成功打开已编译的js文件和源映射后,浏览器似乎无法找到并加载未编译的js文件。
    如果控制台中有一条错误消息来快速发现问题,那就太好了。

    我刚才也遇到了同样的问题,它来自
    源映射未正确设置。在源映射中,除了
    “version”
    “file”
    )之外还有一个
    “sources”:[]
    entry,它告诉浏览器在哪里可以找到实际的源文件(而不是源映射)

    正如我和您一样,从子文件夹编译资产时,子文件夹路径在这个源数组中(即它是
    “sources”:[“src/comp/foo.js”]
    而不是
    “sources”:[“foo.js”]
    )。浏览器试图从我的Web服务器请求
    src/comp/foo.js
    ,但它显然不在那里,因为
    foo.js
    直接在那里

    解决此问题的方法是设置适当的
    sourceMapLocationMappings
    。使用closure编译器cli,您可以使用。使用ant任务,您可以向任务调用添加一个

    这将调整
    “sources”
    以直接指向
    [“foo.js”]
    ,然后由您的Web服务器提供服务,并可通过开发工具找到


    编辑:根据

    --source\u map\u location\u mapping
    中添加了双引号听起来像是浏览器错误,但无法看到或复制它,无法确定。3个不同浏览器中存在相同的错误?似乎不太可能。您的描述对于每个浏览器都不同,不一样。您使用的是什么操作系统?请制作一个屏幕查看你正在做什么,并将其添加到你的问题中。在Windows或OSX中,你可以使用。我在Windows 10上,我在描述中添加了两个屏幕截图