2

我想像 rails 一样调试 node.js。我尝试了几种方法:

  1. Webstorm 调试 - 在这种情况下,我需要在每次更改代码后单击“重新运行调试”
  2. 带有 chrome 远程调试器的 Nodemon - 在这种情况下,我需要在 nodemon 重新加载代码后每次重新连接到调试器
  3. pry.js——在这里我需要输入“eval(pry.it)”——并且没有选项让它更简单,比如“debug”或 pry()

那么调试像 byebug for rails 这样的节点应用程序的最佳选择是什么?

升级:

感谢@AbhinavD 我已经设法在 VSCode 中做到了:首先你需要编辑 app/.vscode/launch.js javascript { "version": "0.2.0", "configurations": [ { "type": "node", "request": "attach", "name": "Node: Nodemon", "processId": "${command:PickProcess}", "restart": true, "protocol": "inspector", }, ] } 所以现在 nodemon 在更改后重新启动服务器并且 VSCode 自动重新连接到调试器。

见视频https://vimeo.com/267975071

有人可以在 WebStorm 中做到这一点吗?

4

3 回答 3

2

回答你的问题:没有办法。不幸的是,使用 Node.js,当您更改代码时,您总是必须重新启动调试会话。

我最近写了一篇关于使用不同工具调试 JavaScript 和 TypeScript 的文章,如果你有兴趣的话,但没有什么比实时调试更好的了。

于 2018-05-03T12:11:00.013 回答
2

现在升级工作正常。[23/09/2018]

对于配置,您需要拥有 Webstorm 2018. 2并按照以下步骤操作:

webstorm 运行/调试配置

并且还包括“附加到Node.js /Chrome”[+] 的选项,如下所示:

webstorm 运行/调试配置附加选项

要在每次更改后重新启动调试器,您必须启用 [ x] 自动重新连接选项。

使用调试的流程是:

  1. 运行你的(在我的情况下)Nodemon。
  2. 调试您的(在我的情况下)NodemonDebugger
  3. 设置断点和其他一切,一切顺利。

注意:如果您转而直接使用调试器(因此不遵循此过程),则可能会期望在更改代码行后终止该过程。

于 2018-09-23T05:53:40.077 回答
1

我不确定如何byebug工作。但是,如果您使用 VSCode 和 nodemon(全局安装),VSCode 可以将自身重新附加到正在运行的进程,并会在调试器中的同一点中断。

这是我的配置文件的样子

{
      "name": "Launch server.js via nodemon",
      "type": "node",
      "request": "launch",
      "runtimeExecutable": "nodemon",
      "program": "${workspaceFolder}/joiValidation.js",
      "restart": true,
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen"
    }

这是我调试时制作的小视频。官方文档

于 2018-05-03T17:19:20.523 回答