遵循咖啡脚本代码:
try
any_error_here
catch err
alert err.stack
提供以下堆栈跟踪:
ReferenceError: any_error_here is not defined
at eval (coffeescript:5:3)
如何获取此堆栈的coffeescript行号(第2行)?
以下是具有相同问题的简单html:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Coffee-script stack trace problems</title>
<script type="text/javascript" language="javascript" src="http://coffeescript.org/extras/coffee-script.js"></script>
</head>
<body id="dt_example">
<script type="text/coffeescript" language="javascript">
try
any_error_here
catch err
alert err.message+'\n'+err.stack + '\n\nWhat is coffeescript line number for this stack?'
</script>
</body>
</html>
答案 0 :(得分:0)
这听起来像source maps的问题。
编译CoffeeScript时,可以通过指定-m
选项生成源地图:
coffee -c -m so.coffee
在支持源地图的浏览器(例如Chrome)中,CoffeeScript文件将显示在来源标签中,错误和日志语句将引用CoffeeScript文件中的相应行。
有关详细信息,请查看HTML5 tutorial on source maps和short article about using source maps with CoffeeScript。
如果您有源映射,您还可以使用它来解析堆栈跟踪字符串,并返回原始未编译文件,如this question中所述。