coffeescript行号错误。堆栈?

时间:2014-01-30 16:25:49

标签: coffeescript

遵循咖啡脚本代码:

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>

1 个答案:

答案 0 :(得分:0)

这听起来像source maps的问题。

编译CoffeeScript时,可以通过指定-m选项生成源地图:

coffee -c -m so.coffee

在支持源地图的浏览器(例如Chrome)中,CoffeeScript文件将显示在来源标签中,错误和日志语句将引用CoffeeScript文件中的相应行。

Chrome developer console with source-mapped CoffeeScript

有关详细信息,请查看HTML5 tutorial on source mapsshort article about using source maps with CoffeeScript

如果您有源映射,您还可以使用它来解析堆栈跟踪字符串,并返回原始未编译文件,如this question中所述。