【问题标题】:How to debug "built" production NodeJS如何调试“构建”的生产 NodeJS
【发布时间】:2021-03-15 02:29:53
【问题描述】:

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

Node 进程在 docker 内部运行,

我端口转发并通知 USR1 以启用将调试器从 VS 代码附加到该节点进程

我的 VS Code 配置是这样的

{
  "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>/**"
      ]
    }
  ]
}

通过 VS 代码,我可以挂钩到应用程序,并且应用程序可以在异常时中断 但是,没有源映射导致我的源代码中的所有断点都是“未绑定断点”

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

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

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

我将 Chrome 行为添加为单独的问题

NodeJs: Chrome inspector can map source but unable to debug on original source

【问题讨论】:

    标签: node.js debugging visual-studio-code remote-debugging vscode-debugger


    【解决方案1】:

    Node 已附带集成调试器。但是它没有图形用户界面,所以你需要使用命令行版本。

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

    $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>
    

    它会向您显示暂停的位置,然后让您使用 next 和 cont 等命令控制执行。

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

    repl 和 watch 命令允许您查看局部变量的值。

    【讨论】:

      【解决方案2】:

      不知道对你有没有帮助。但我认为你必须使用node-inspector。它可以在任何支持 WebSocket 的浏览器中使用。真的很不错。

      很酷的东西

      • Node Inspector 使用 WebSockets,因此不会轮询中断。
      • 远程调试和调试远程机器。
      • 实时编辑正在运行的代码,可选择将更改持久化回文件系统。
      • 在尚未加载到 V8 的文件中设置断点 - 对于调试模块加载/初始化很有用。
      • 可嵌入到其他应用程序中 - 有关详细信息,请参阅嵌入 HOWTO。

      【讨论】:

        猜你喜欢
        • 2016-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        相关资源
        最近更新 更多