2012-06-17 104 views
50

有没有一种方法可以逐行调试CoffeeScript?逐行调试CoffeeScript

我知道它编译成Javascript。但是,这听起来像可能会让调试变得很痛苦。

+4

由于生成的JavaScript保留了缩进,所以函数和变量的名称调试起来并不像大多数人想象的那么糟糕。此外,对CoffeeScript中的“源地图”的支持(在下一版本中)解决此问题:http://www.coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html –

+1

您可以配置[coffeescript debbuging在JetBrains WebStorm](http://www.youtube.com/watch?feature=player_detailpage&v=Sl1Uk3zT5Fg) –

回答

13

目前调试CoffeeScript是一件非常痛苦的事情。大多数人使用大量的单元测试。

对于CoffeeScript的调试有一些工作正在完成,但是在我们有一个非常好的调试器之前可能还有一段时间了。一个例子是http://www.infoq.com/news/2011/08/debug-languages-on-javascript-vm

+15

令人毛骨悚然的单元测试,以避免快乐的调用堆栈调试?哎呀! – Esteban

+0

我会在这里放置bugger:https://github.com/jkrems/bugger。它对coffee-script 2.x进行了逐步调试。 对于咖啡脚本1.x有node-inspector的strongloop-fork:https://github.com/strongloop/node-inspector –

29

如果从终端运行的CoffeeScript,你可以对它进行调试线换线使用node-inspector,启动你的脚本是这样的:

coffee --nodejs --debug-brk yourscript.coffee 
+1

用于调试器自动连接我正在使用'coffee --nodejs debug yourscript.coffee ' – dmi3y

33

更新:有目前的redesign coffeescript编译器,它会生成source maps,它应该使您能够在Google Chrome的最新版本(包括18位以上)中调试您的咖啡标记。

我认为它还没有生产就绪,但值得一提。

+1

请注意,源地图仅适用于Chrome Canary,WebKit每晚和Firefox 23+。顺便说一句,这将是在客户端调试编译后的JavaScript代码的最佳方式,所以+1为你的答案;) – Wilk

+0

在Ubuntu Trusty存储库中的Chromium 39当前版本中可用。而且,“非生产准备”并不限制其在开发过程中的使用。 –

9

是的,node-inspector

npm install -g node-inspector 

通过将声明debugger到脚本的源代码,您将启用一个断点。然后输入一个控制台:

coffee -c -m myscript.coffee 
node-debug myscript.js 

节点检查器支持源代码映射,所以不需要额外的配置。

欲了解更多信息see this post

+0

这很吸引人,但我怎么让他把我的'要求'something.coffee''考虑在内? –