我正在尝试使用自定义服务器调试 Next.js 应用程序,该服务器通常使用执行 node server.js
的 dev
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/