很久以前,Mike Taylor 指出,jQuery CDN 中有一个最小化的 jQuery 1.9.1 复制文件,其中包含一个错误的映射文件引用。基本上,它引用了 jQuery 1.11.1 的映射文件,而这显然是错误的。如果你试图调试使用最小化 jQuery 1.9.1 文件的网站,开发工具将会非常混乱,让原本困难的任务更加困难。
你可能会认为我们只需要编辑https://code.jqueryjs.cn/jquery-1.9.1.min.js
文件以指向正确的映射文件,它确实存在,名为https://code.jqueryjs.cn/jquery-1.9.1.min.map
。这样做至少有两个问题。第一个问题是,该文件在整个互联网上被大量缓存,因为多年来一直认为它在发布后将永远不会改变。即使我们编辑了文件,JavaScript 文件和映射文件也可能在使用时永远不会真正更新。
第二个问题更加严重。我们一直倡导开发人员使用脚本的integrity
属性,以确保你包含的文件自你最初编写脚本标签以来没有被修改。如果我们修改文件的内容,这个属性将是错误的,页面将不再包含该文件。这很可能会导致页面完全崩溃!考虑到 jQuery 1.9.1 的年代,有可能包含此文件的许多页面都没有被积极维护。因此,我们不能认真考虑以任何方式更改 JavaScript 文件,即使是一字节也不行。
最不具破坏性的选择是删除 jQuery 1.9.1 最小化文件引用的jquery.min.map
文件。它不会影响 jQuery 是否能正常运行,也不会影响网站访问者。它只会禁用源映射。由于在 CDN 和整个互联网上包含sourceMappingURL
映射引用的这些 JavaScript 文件经常被复制到其他地方,因此我们不再包含它。
如果你需要调试使用这些最小化文件的网站,可以在 Chrome 中手动关联映射文件。打开最小化的源文件,在最小化源区域右键单击,然后选择“添加源映射...”。
不正确的jquery.min.map
文件已从 jQuery CDN 中删除。我们预计,除了恢复使用 jQuery 1.9.1 调试网站的正常状态外,删除该文件不会带来任何明显的改变。jQuery 1.11.1 最小化文件不引用其映射文件,因此它将继续正常工作,你可以像上面提到的那样关联映射文件。
由于 CDN 和整个互联网上的缓存非常积极,你可能在一段时间内仍然会看到这个映射文件。如果你发现一些你认为与缺失的jquery.min.map
文件相关的异常行为,你可以在 CDN 问题跟踪器中创建一个工单.