逐行调试CoffeeScript代码

53

有没有一种逐行调试CoffeeScript代码的方法?

我知道它会编译成JavaScript。但这听起来可能会让调试变得很麻烦。


4
由于生成的JavaScript代码保留了缩进、函数和变量名,因此调试并不像大多数人想象的那样糟糕。此外,支持“源映射”的CoffeeScript即将推出(下一个版本?)以解决这个问题:http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html - Hector Correa
1
您可以在JetBrains WebStorm中配置CoffeeScript调试 - Maxim Yefremov
6个回答

36
更新: 目前有一个重新设计的coffeescript编译器,可以生成源代码映射,这应该使您能够在最新版本的Google Chrome(我想是18及以上版本)中调试您的coffeescript。

我认为它还不适用于生产环境,但值得一提。


1
请注意,源映射仅适用于Chrome Canary、WebKit nightly和Firefox 23+。顺便说一句,这将是在客户端调试编译后的JavaScript代码的最佳方式,所以给你的回答加上一个赞 ;) - Wilk
在Chromium 39中可用,在Ubuntu Trusty存储库中的当前版本。而且,“非生产就绪”并不限制其在开发过程中的使用。 - D-side

29

如果您从终端运行Coffeescript,您可以使用node-inspector逐行调试它,以这种方式启动您的脚本:

coffee --nodejs --debug-brk yourscript.coffee

1
为了自动连接调试器,我使用 coffee --nodejs debug yourscript.coffee - dmi3y

14

16
避免快乐的调用栈调试,需要使用可怕的单元测试?哎呀! - Esteban
我会在这里放置 bugger:https://github.com/jkrems/bugger。它支持 coffee-script 2.x 的逐步调试。对于 coffee-script 1.x,有 node-inspector 的 strongloop-fork:https://github.com/strongloop/node-inspector。 - Jan Olaf Krems

9

是的,使用node-inspector可以实现:

npm install -g node-inspector

通过在脚本的源代码中添加语句debugger,您将启用断点。然后在控制台中输入:
coffee -c -m myscript.coffee
node-debug myscript.js

Node Inspector可以直接支持源映射,无需额外配置。

如需更多信息,请参见本文


很有趣,但我该如何让他考虑我的 require 'something.coffee' 呢? - Loic Coenen

5

4
有Jetbrains:http://blog.jetbrains.com/ruby/2013/01/whats-mining-coffeescript-debugger/ - dan-klasson

1
现在是2020年,我发现了这个问题,然后我发现vscode支持源映射,所以我们可以直接使用vscode调试coffee。
顺便说一下,我认为咖啡需要很大的改进。就像静态数据一样。 无论如何,这是我的launch.json:
{
    "version": "0.2.0",
    "configurations": [{
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "skipFiles": [
            "<node_internals>/**"
        ],
        "program": "${file}", //important, make sure debug current file
        "outFiles": [
            "${workspaceFolder}/dist/api/api.js" //important, where to find sourcemap js file
        ]
    }]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接