逐行调试 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的主要内容,如果未能解决你的问题,请参考以下文章

gdb:使用管道逐行调试

VScode如何逐步运行调试javaScript?

逐行分析 Django 视图

VBA将Excel电子表格逐行导入Access

python的debug神器PySnooper

集合