浏览器如何获取源映射?

Lud*_*son 4 javascript source-maps

我试图了解源映射是如何工作的。我使用 nodejs 创建了一个带有一页的简单 Web 服务器。安装了带有缩小版本和源映射的 jQuery。然后我在我的网页上放置了一个脚本标签,包括 jQuery 的缩小版本。由于源映射,我现在可以浏览 chrome 开发人员工具中未缩小的代码。但是如何?

我分析了从服务器发送的东西,源图没有传输。它们未显示在 chrome 开发人员工具的网络选项卡中,也不包含在缩小的 jquery 文件的下载内容中。唯一的事情是//# sourceMappingURL=jquery.min.map在缩小的 jQuery 文件的末尾。浏览器如何访问它们?

我有点想知道,因为在我的工作中我正在创建一个应用程序,如果能够在生产中使用源映射跟踪错误会很好。但现在看来,如果我允许这样做,也意味着任何访问该站点的人都可以获得未压缩的代码。这是正确的还是我可以控制源映射如何从服务器传输到客户端?

编辑:感谢您的回答。我自己也做了更多的研究,记录了服务器收到的每个请求。如果使用调试器工具,则源映射是在缩小文件末尾指定的 url 处的请求。chrome 隐藏了这一点的事实使事情变得非常混乱。如果我阻止传输源映射,源映射将不起作用,但 chrome 也会缓存源映射。即如果我允许源映射,查看它,然后阻止它并再次查看源映射可能仍然有效。

Max*_*ter 6

源映射确实已传输,但在当前版本的 Chrome 中,它们未显示在“网络”选项卡中。根据这个答案,源映射曾经在网络选项卡上可见,但在某些时候他们决定更改它以便请求不再可见。

至于将源映射保密,此答案中提到的解决方案之一是创建一个.htaccess文件,以限制对本地网络中客户端的源映射访问。另一种方法是设置身份验证,因此您必须登录该站点才能查看源地图,否则您将收到 403。