在 Safari 中显示文件和 javascript 语法错误行

jav*_*dba 7 javascript safari stack-trace

对于以下错误:

SyntaxError: Unexpected token '='. Expected an opening '(' before a method's parameter list.
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Safari 没有显示文件的正确堆栈跟踪。请注意,html 中没有内联 javascript 代码:它全部在.js文件中。如何更好地处理发生此错误的位置?

Jac*_*nkr 1

根据链接到这篇文章的这个答案

window.onerror像这样覆盖你的

window.onerror = function(message, url, linenumber) {
    alert('JavaScript error: ' + message + ' on line ' + linenumber + ' for ' + url);
}
Run Code Online (Sandbox Code Playgroud)

如果您正在开发生产应用程序,您确实应该使用 babel,它将为您解决此类问题。如果它不能解决这些问题,请确保更新您的软件包/npm 等。

为了获得更多技术性信息,这是因为您(或您的用户之一)正在使用过时的 safari 版本,该版本仅正式支持一些最新和最出色的 javascript 改进。升级 Safari 也可能会解决此问题,具体取决于您阅读本文的时间。

干杯