很久以前,Mike Taylor 指出 jQuery CDN 包含一个错误的 map 文件引用的 jQuery 1.9.1 的压缩版本。基本上,它引用的是 jQuery 1.11.1 的 map 文件,这显然是错误的。如果您正在尝试调试使用压缩的 jQuery 1.9.1 文件的站点,开发工具会感到非常困惑,使本来就困难的任务更加困难。
您可能会认为我们可以直接编辑 https://code.jqueryjs.cn/jquery-1.9.1.min.js 文件以指向正确的 map 文件,该文件确实存在于 https://code.jqueryjs.cn/jquery-1.9.1.min.map。这样做至少存在两个问题。首先,由于假设一旦发布后该文件将永远不会更改,因此该文件已经在互联网上被广泛缓存。即使我们编辑了文件,JavaScript 和 map 文件可能也永远无法在它们被使用的地方更新。
第二个问题甚至更严重。我们一直提倡开发者使用 脚本的 integrity 属性,以确保您包含的文件自您最初编写脚本标签以来没有被修改。如果修改了文件的内容,此属性将不正确,并且页面将不再包含该文件。这可能会完全破坏页面!考虑到 jQuery 1.9.1 的年龄,其中许多包含此文件的页面可能没有得到积极维护。因此,我们不能认真考虑以任何方式更改 JavaScript 文件,甚至一个字节。
最不具破坏性的选择是删除 jQuery 1.9.1 压缩文件引用的 jquery.min.map 文件。这不会影响 jQuery 是否能在站点的访问者那里正确运行。它只会禁用源映射。由于将 sourceMappingURL map 引用包含在经常复制到其他地方的 CDN JavaScript 文件中存在这些陷阱,我们不再包含它。
如果您需要调试使用这些压缩文件之一的站点,可以在 Chrome 中手动关联 map 文件。打开压缩的源文件,右键单击压缩源的区域,然后选择“添加源映射…”。
错误的 jquery.min.map 文件已从 jQuery CDN 中删除。我们预计删除此文件不会有任何可观察到的变化,除了恢复使用 jQuery 1.9.1 的站点进行调试的理智。jQuery 1.11.1 压缩文件不引用其 map 文件,因此它将继续正常工作,您可以如上所述关联 map 文件。
由于 CDN 和互联网上的缓存非常激进,您可能仍然会看到此 map 文件一段时间。如果您看到任何不寻常的行为,您认为与缺失的 jquery.min.map 文件有关,您可以 在 CDN 问题跟踪器上提交工单。