Node.js “如何调试”;“建造”;生产节点

Node.js “如何调试”;“建造”;生产节点,node.js,debugging,visual-studio-code,remote-debugging,vscode-debugger,Node.js,Debugging,Visual Studio Code,Remote Debugging,Vscode Debugger,我正在使用VisualStudio代码调试生产环境中的节点应用程序 节点进程在docker内部运行 I端口转发并向USR1发送信号,以启用将调试器从VS代码附加到该节点进程 我的VS代码配置如下 { "version": "0.2.0", "configurations": [ { "type": "node", "request": &

我正在使用VisualStudio代码调试生产环境中的节点应用程序

节点进程在docker内部运行

I端口转发并向USR1发送信号,以启用将调试器从VS代码附加到该节点进程

我的VS代码配置如下

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "attach",
      "name": "Debug: service",
      "sourceMaps": true,
      "smartStep": true,
      "remoteRoot": "/src/",
      "localRoot": "/home/my-username/work/orders/src/",
      "protocol": "inspector",
      "port": 9229,
      "restart": true,
      "address": "0.0.0.0",
      "skipFiles": [
        "<node_internals>/**",
        "<node_modules>/**"
      ]
    }
  ]
}
{
“版本”:“0.2.0”,
“配置”:[
{
“类型”:“节点”,
“请求”:“附上”,
“名称”:“调试:服务”,
“源地图”:正确,
“smartStep”:没错,
“remoteRoot”:“/src/”,
“localRoot”:“/home/my username/work/orders/src/”,
“协议”:“检查员”,
“港口”:9229,
“重启”:正确,
“地址”:“0.0.0.0”,
“滑雪板”:[
"/**",
"/**"
]
}
]
}
从VS代码中,我可以钩住应用程序,应用程序可以在异常时中断 但是,没有任何源映射会导致源代码中的所有断点都是“未绑定断点”

VS代码中加载的脚本列表显示

VS代码调试器能够在dist中查看节点_模块和构建的源代码版本。另一个值得注意的是,用于构建/dist的源代码也可以直接在生产服务器的上部文件夹中获得

在这种情况下,如何使用未构建的源代码调试构建的生产流程

我添加了Chrome行为作为单独的问题


我不知道这对你是否有帮助。但我认为你必须使用。它可以从支持WebSocket的任何浏览器中使用。真的很好

很酷的东西

  • 节点检查器使用WebSocket,因此不会轮询中断
  • 远程调试和调试远程机器
  • 实时编辑正在运行的代码,可以选择将更改保留回文件系统
  • 在尚未加载到V8的文件中设置断点-对于调试模块加载/初始化非常有用
  • 可嵌入其他应用程序-有关更多详细信息,请参阅嵌入方式

节点已附带集成调试器。但是,它没有GUI,因此需要使用命令行版本

可以使用节点调试启动此调试器

$node debug test.js
< Debugger listening on port 5858
debug> . ok
break in test.js:1
> 1 var a= 5;
  2 a = a*a
  3 a += 2;
debug>
repl和watch命令允许您查看局部变量的值

debug> next
break in test.js:2
  1 var a= 5;
> 2 a = a*a
  3 a += 2;
  4