【问题标题】:coffeescript line number in error.stack?error.stack 中的咖啡脚本行号?
【发布时间】:2014-02-23 01:54:20
【问题描述】:

以下咖啡脚本代码:

try
    any_error_here
catch err
    alert err.stack

提供以下堆栈跟踪:

ReferenceError: any_error_here is not defined 
  at eval (coffeescript:5:3)

如何获取此堆栈的咖啡脚本行号(第 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>

【问题讨论】:

    标签: coffeescript


    【解决方案1】:

    这听起来像是source maps 的问题。

    当你编译你的 CoffeeScript 时,你可以通过指定 -m 选项来生成一个源映射:

    coffee -c -m so.coffee

    在支持源映射的浏览器(例如 Chrome)中,CoffeeScript 文件将出现在 Sources 选项卡中,错误和日志语句将引用 CoffeeScript 文件中的相应行。

    如需更多信息,请查看HTML5 tutorial on source mapsshort article about using source maps with CoffeeScript

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 2011-11-08
      相关资源
      最近更新 更多