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

How to debug Node.js/JavaScript code generated from CoffeeScript?

本文关键字:Node js 代码 JavaScript CoffeeScript 何调试 调试      更新时间:2023-09-26

我正在使用Node.js的CoffeeScript。我希望能够调试弹出的JavaScript错误/异常,但这些错误的行号来自生成的JavaScript代码,而不是来自CoffeeScript源,所以我在找出CoffeeScript中的错误实际上是哪里时遇到了麻烦。

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

CoffeeScript编译器支持源映射,因此有一个从JavaScript到CoffeeScript的映射,其中包含您需要知道的信息。对于您的服务器端项目,我认为Jet Brains使用此地图进行调试。在浏览器方面,Chrome似乎支持它。我不确定其中一个工具是否适合您,但如果不是,我认为CoffeeScript和source map是您应该寻找的词。好运!

我为LiveScript创建了一个工具,它的工作原理与CoffeeScript非常接近,所以你可以根据自己的需要修改它:https://github.com/ceremcem/debug-ls

简要

:

  • 使用您最喜欢的捆绑器(在本例中我使用Rollup)从主脚本生成一个带有源地图的捆绑包。

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

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

  • 找到在"远程目标"下列出的进程部分

  • 单击"inspect"按钮

因为sourcemap,咖啡就像js。所以我们可以在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
        ]
    }]
}