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