【问题标题】:How do you debug a modularized node.js app where files are included as modules如何调试模块化 node.js 应用程序,其中文件作为模块包含在内
【发布时间】:2019-07-05 16:59:53
【问题描述】:

我的大多数 node.js 应用程序都是使用 require() 模块化编写的,因此大多数实际程序执行发生在 index.js 文件之外。

我发现在使用node --inspect=0.0.0.0 index.js 时,我只能设置断点并在程序在index.js 中运行时对其进行评估。

如何设置 node.js 调试器(或任何其他方法),以便我可以在调试器中查看属于我的应用程序的特定模块?

我也在使用 Visual Studio Code 进行调试。

我从 docker 容器中运行我的所有应用程序,因此我使用 0.0.0.0 作为地址。

我试过了:

    node --inspect=0.0.0.0 index.js 

连接到调试器但只看到 index.js

还有:

    node index.js --inspect src/core/my_module.js 

甚至不启动调试器

然后我使用 Visual Studio 代码连接到调试器,并可以在 index.js 中设置断点。但是,我无法在 index.js 中的任何模块文件上查看或设置断点,例如 const my_module = require('my_module')

我期待有某种方法可以使用 node.js 和 Visual Studio Code 调试完全模块化的应用程序。如何做到这一点?

-感谢您的宝贵时间

【问题讨论】:

    标签: node.js debugging visual-studio-code node-inspector


    【解决方案1】:

    我不确定如何在 Visual Studio Code 中完成此操作,但是当我使用 node --inspect-brk test.js 在 Chrome 开发工具中调试我的脚本并且执行在第一行停止时,我可以单击“将文件夹添加到工作区”按钮将模块文件夹包含到文件树中,打开模块,设置断点并继续执行:

    也许 VS Code 中有类似的东西?

    【讨论】:

    • 谢谢,尽管不是 VSC 特定的,但您的回答实际上为我澄清了很多。
    【解决方案2】:

    在 VSC 中,左侧的 Debug 列中有一个选项卡,上面写着 LOADED SCRIPTS。

    如果您在感兴趣的模块的 require() 语句下方设置一个断点并将程序运行到该断点,您将能够在 LOADED SCRIPTS 下看到这些文件并在其中设置断点,方法与你会 index.js

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2020-04-21
      • 1970-01-01
      相关资源
      最近更新 更多