如何调试从CoffeeScript生成的Node.js / JavaScript代码?

时间:2013-05-26 02:26:46

标签: javascript node.js coffeescript source-maps

我正在使用带有Node.js的CoffeeScript。我希望能够调试弹出的JavaScript错误/异常,但这些错误的行号来自生成的JavaScript代码,而不是来自CoffeeScript源代码,因此我无法确定CoffeeScript中的错误实际位置是

无论如何我可以调试这个吗?我有最新版本的node.js,版本0.10

3 个答案:

答案 0 :(得分:2)

CoffeeScript编译器supports source maps,因此存在从JavaScript到Coffeescript的映射以及您需要知道的信息。对于您的服务器端项目,我认为Jet Brains uses this map for debugging。在浏览器端Chrome seems to support it。我不确定其中一个工具是否适合您,但如果不是,我认为CoffeeScript和源地图是您应该寻找的词。祝你好运!

答案 1 :(得分:0)

我为LiveScript创建了一个工具,该工具与CoffeeScript非常接近,因此您可以根据需要进行修改:https://github.com/ceremcem/debug-ls

简而言之:

  • 使用您喜欢的捆绑程序(在这种情况下,我使用Rollup)从您的主脚本中生成一个带有源地图的捆绑程序。

  • 使用以下命令运行脚本:

    node --enable-source-maps --inspect-brk your-bundle.js
    
  • 在Chrome中转到chrome://inspect/#devices地址

  • 找到“远程目标”部分中列出的过程

  • 单击“检查”按钮

答案 2 :(得分:0)

因为源地图,咖啡就像js。因此我们可以在vscode中调试咖啡。无论如何,这是我的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
        ]
    }]
}