【问题标题】:How to debug Node.js/JavaScript code generated from CoffeeScript?如何调试从 CoffeeScript 生成的 Node.js/JavaScript 代码?
【发布时间】:2013-05-21 06:40:22
【问题描述】:

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

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

【问题讨论】:

  • 您能否举例说明您遇到问题的代码以及遇到的错误?
  • @ColdHawaiian 它是什么代码并不重要,因为堆栈跟踪会转到已编译的 javascript 而不是咖啡源?这怎么不是一个真正的问题?如果你不知道答案,让知道的人回答然后走开。
  • 好的,如果问题更清楚,可以重新打开它。让我试着稍微修改一下,看看能不能修复它。
  • @ColdHawaiian 感谢您的帮助

标签: javascript node.js coffeescript source-maps


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    简单地说:

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

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

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

    • 查找“远程目标”部分下列出的进程

    • 点击“检查”按钮

    【讨论】:

      【解决方案3】:

      因为sourcemap,coffee就像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
              ]
          }]
      }
      

      【讨论】:

        猜你喜欢
        • 2014-01-08
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        • 2014-07-17
        • 1970-01-01
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        相关资源
        最近更新 更多