我将 CoffeeScript 与 Node.js 一起使用。我希望能够调试弹出的 JavaScript 错误/异常,但这些错误的行号来自生成的 JavaScript 代码,而不是来自 CoffeeScript 源,所以我无法确定 CoffeeScript 中错误的实际位置是。
无论如何我可以调试这个吗?我有最新版本的 node.js,版本0.10
。
我将 CoffeeScript 与 Node.js 一起使用。我希望能够调试弹出的 JavaScript 错误/异常,但这些错误的行号来自生成的 JavaScript 代码,而不是来自 CoffeeScript 源,所以我无法确定 CoffeeScript 中错误的实际位置是。
无论如何我可以调试这个吗?我有最新版本的 node.js,版本0.10
。
CoffeeScript 编译器支持源映射,因此有一个从 JavaScript 到 Coffeescript 的映射,其中包含您需要知道的信息。对于您的服务器端项目,我认为Jet Brains 使用此地图进行调试。在浏览器方面Chrome 似乎支持它。我不确定其中一个工具是否适合您,但如果不是,我认为 CoffeeScript 和 source map 是您应该寻找的词。祝你好运!
因为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
]
}]
}
我为 LiveScript 创建了一个工具,它与 CoffeeScript 非常接近,因此您可以根据需要对其进行修改:https ://github.com/ceremcem/debug-ls
简要地:
使用您最喜欢的捆绑程序(在本例中我使用 Rollup)从您的主脚本生成一个包含源映射的捆绑包。
使用以下命令运行您的脚本:
node --enable-source-maps --inspect-brk your-bundle.js
转到chrome://inspect/#devices
Chrome 中的地址
查找“远程目标”部分下列出的进程
点击“检查”按钮