我正在做一些测试开发并使用 Svelte 和 ParcelJS 创建一个 Chrome 扩展,并希望在 chrome 开发工具中查看源映射。但是,在查看任何页面时,我只能看到捆绑的代码,看到此错误:
DevTools 无法加载 SourceMap:无法加载 chrome-extension://debafkiakedogoflaalmbbfbbccnfbib/Background/index.js.map 的内容:HTTP 错误:状态代码 404,net::ERR_UNKNOWN_URL_SCHEME
似乎加载程序不喜欢chrome-extensionurl 方案。我已经尝试将“dist”添加为覆盖目录,但是无论加载什么源映射似乎都会忽略它并仍然使用“chrome-extension”方案。
我可以通过手动将 url 更改为另一个模式(file:///url 或在 dist 目录中运行简单的 http 服务器并使用http://url)来使其工作:
//# sourceMappingURL=file:///c:/git/svelte-extension/dist//Background/index.js.map`
//# sourceMappingURL=http://localhost:8080/Background/index.js.map`
Run Code Online (Sandbox Code Playgroud)
有没有办法让chrome覆盖目录或告诉parcel创建这些url?
我有一个构建脚本,通过uglifyjs运行我的所有代码,做一些花哨的缓存,最终运行eval( code )在一些JavaScript文件上.
我正在尝试使用源映射启动和运行整个过程,但只要我正在使用,我似乎无法使其工作eval.如果我直接使用<script src="...">它链接到文件工作正常.
在我的eval代码中,我有:
code, blah blah blah
//@ sourceMappingURL=/cache/618a67795c7460184bd9b99020cbb9fd.map
Run Code Online (Sandbox Code Playgroud)
然后在那个.map文件中,我有:
{
"version" : 3
, "file" : "618a67795c7460184bd9b99020cbb9fd.map"
, "sources" : ["/js/Parallax-JS/js/parallax-2.js"]
, "names" : [
"a"
, "bunch"
, "of"
, "variable"
, "names"
]
, "mappings" : "... LONG MAP ..."
}
Run Code Online (Sandbox Code Playgroud)
我试过把它放在//@ sourceURL=最后,至少给了我正确的文件名,但仍然没有可读源.
有任何想法吗?在Chrome 25(dev)和26(canary)中进行测试