SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead

信息

Warning: SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead

Warning: SyntaxError: Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead

错误类型

SyntaxError 的警告。不会终止 JavaScript 的执行。

哪里错了?

在 JavaScript 源码中使用了已废弃的 source map 语法。

JavaScript 源代码经常被组合和压缩,以便能更高效地从服务器获取它们。使用了 source maps,调试器就可以将正在执行的代码映射到原始源文件。

因为 IE 浏览器只要页面在 //@cc_on 之后的都会被IE JScript引擎解释为打开条件编译后,所以 source map 的规范更改了语法。条件编译注释 是 IE 的一个小特色,但是它破坏了 jQuery 和其他库的 source map。

示例

废弃的语法

使用 "@" 符号的语法已经被废弃了。

//@ sourceMappingURL=http://example.com/path/to/your/sourcemap.map

标准语法

使用 "#" 符号代替。

//# sourceMappingURL=http://example.com/path/to/your/sourcemap.map

或者,您也可以为 JavaScript 文件设置 header,以避免添加注释:

X-SourceMap: /path/to/file.js.map

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
New syntax (Yes) 24 (24) ? (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
New syntax ? ? 24.0 (24) ? ? ?

相关