node.js - 如何调试 Node.js 服务器?调试器跳过我的断点! (使用VSCode)

标签 node.js debugging visual-studio-code next.js

我正在尝试使用自定义服务器调试 Next.js 应用程序,该服务器通常使用执行 node server.jsdev Yarn 脚本运行。

VSCode 包含 Node.js 调试扩展和 this guide ,我已经关注了。我创建了一个名为 dev:debug 的新 Yarn 脚本,该脚本运行 node --inspect server.js,并在 launch.json 中进行以下配置:

{
  "type": "node",
  "request": "launch",
  "name": "Debug via Yarn",
  "runtimeExecutable": "yarn",
  "runtimeArgs": ["dev:debug"],
  "port": 9229
}

但是,server.js 导入的模块中的一些断点被跳过,我不确定为什么。当我在 Web 应用程序中加载页面时,Next 组件中的其他断点确实有效。有什么想法吗?

最佳答案

好的!这是发生的事情(我将所有这些发布到 SO,因为我在网上找不到答案):

当您构建 Next.js 应用程序时,您正在编写服务器应用程序( Node )和服务器端 Web 应用程序(下一个),它们是独立的东西!此外,您还在此基础上构建一个客户端应用程序 (React)。 (如果您习惯使用其他平台,例如使用内置服务器、Apache 或 NginX 等服务器的 PHP 或 Python Web 应用程序,则这一点并不明显!)

运行 node --inspect server.js 告诉调试器加载服务器,然后仅开始调试您的 Web 应用程序(“用户代码”)。

解决方案:node CLI 有一个特殊的--inspect-brk option当您还想调试服务器本身的代码时使用!是的,解决方案是多 4 个字符 (-brk)。

关于node.js - 如何调试 Node.js 服务器?调试器跳过我的断点! (使用VSCode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59596138/

相关文章:

debugging - 在 Visual Studio Code 调试器中使用 Jest 时如何配置源映射

visual-studio-code - 有没有办法使用 tmLanguage 语法来扩展 vscode 集成的 markdown 扩展语法高亮?

node.js - Marko JS 模板中的条件类

node.js - Backbone.js - 在 ajax 中获取 View 、模型或集合属性 'beforeSend'

node.js - 为什么我不需要发出事件?

c++ - 阻止调试器进入功能

python - nohup 和 python 没有错误消息?

javascript - 我需要使用 javascript 去除斜体的 <em> 元素。查看代码

c++ - 制作凯撒密码,它不想破译消息

javascript - nightwatch.js 在测试套件结束时暂停