逐行调试 CoffeeScript
Posted
技术标签:
【中文标题】逐行调试 CoffeeScript【英文标题】:Debugging CoffeeScript line-by-line 【发布时间】:2012-06-19 13:08:45 【问题描述】:有没有办法?
我知道它可以编译成 javascript。但这听起来会让调试变得很痛苦。
【问题讨论】:
由于生成的 JavaScript 保留了缩进、函数名称和变量调试,它并没有大多数人想象的那么糟糕。此外,CoffeeScript 中即将支持“Source Maps”(在下一个版本中?)以解决这个问题:coffeescriptlove.com/2012/04/source-maps-for-coffeescript.html 可以配置coffeescript debbuging in JetBrains WebStorm 【参考方案1】:目前调试 CoffeeScript 非常痛苦。大多数人使用大量单元测试。
CoffeeScript 的调试工作正在进行中,但我们可能还需要一段时间才能拥有一个真正优秀的调试器。一个例子是http://www.infoq.com/news/2011/08/debug-languages-on-javascript-vm
【讨论】:
令人毛骨悚然的单元测试以避免愉快的调用堆栈调试?哎呀! 我会把臭虫放在这里:github.com/jkrems/bugger。它对咖啡脚本 2.x 进行了逐步调试。对于 coffee-script 1.x,有 node-inspector 的 strongloop-fork:github.com/strongloop/node-inspector【参考方案2】:如果您从终端运行coffeescript,您可以使用node-inspector 逐行调试它,以这种方式启动您的脚本:
coffee --nodejs --debug-brk yourscript.coffee
【讨论】:
我正在使用的调试器自动连接coffee --nodejs debug yourscript.coffee
【参考方案3】:
更新:目前有一个 redesign 的 coffeescript 编译器生成 source maps,它应该使您能够在最新版本的 Google Chrome(我认为是 18 及更高版本)中调试您的咖啡脚本。
我认为它还没有准备好生产,但值得一提。
【讨论】:
请注意,源地图仅适用于 Chrome Canary、WebKit nightly 和 Firefox 23+。顺便说一句,这将是在客户端调试已编译的 javascript 代码的最佳方式,所以 +1 为你的答案;) 在 Chromium 39 中可用,当前版本在 Ubuntu Trusty 存储库中。而且,“非生产就绪”并不限制其在开发过程中的使用。【参考方案4】:Coffeescript 现在支持源映射: http://coffeescript.org/
例如 Jetbrains 支持此功能:https://blog.jetbrains.com/ruby/2013/01/whats-mining-coffeescript-debugger/
【讨论】:
有Jetbrains:blog.jetbrains.com/ruby/2013/01/…【参考方案5】:是的,node-inspector:
npm install -g node-inspector
通过将语句debugger
放入脚本的源代码中,您将启用断点。然后在控制台中输入:
coffee -c -m myscript.coffee
node-debug myscript.js
Node Inspector 支持开箱即用的源映射,因此无需额外配置。
欲了解更多信息see this post。
【讨论】:
这很吸引人,但我如何让他考虑到我的require 'something.coffee'
?【参考方案6】:
现在是2020年,找到这个问题,然后找到vscode support sourcemap,所以我们可以直接用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
]
]
【讨论】:
以上是关于逐行调试 CoffeeScript的主要内容,如果未能解决你的问题,请参考以下文章