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

浏览器兼容性

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) ? ? ?

相关

文档标签和贡献者