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

4
我正在使用CoffeeScript和Node.js。我希望能够调试JavaScript错误/异常,但是这些错误的行号来自生成的JavaScript代码,而不是来自CoffeeScript源代码,所以我很难确定错误在CoffeeScript中的位置。
有没有办法解决这个问题?我有最新版本的node.js,版本号是0.10

你能否给出你遇到问题的代码示例以及你所遇到的错误? - user456814
@ColdHawaiian 不管是什么代码,因为堆栈跟踪会进入编译后的Javascript而不是Coffee源代码?这不是一个真正的问题吗?如果你不知道答案,那就让知道答案的人来回答,然后离开。 - Harry
好的,也许如果问题更清晰一些,它可以重新开放。让我尝试编辑一下,看看能否修复它。 - user456814
3个回答

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

0

因为有源代码映射,CoffeeScript 就像 JavaScript 一样。所以我们可以在 VSCode 中调试 CoffeeScript。无论如何,这是我的 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
        ]
    }]
}

0

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

简而言之:

  • 使用你喜欢的打包工具(我在这个例子中使用Rollup)生成带有sourcemaps的主要脚本的一个打包文件。

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

    node --enable-source-maps --inspect-brk your-bundle.js
    
  • 在Chrome浏览器输入chrome://inspect/#devices网址。

  • 在“远程目标”栏目下找到你的进程。

  • 点击“检查”按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接