我一直在使用附加调试器,直到昨天它都工作正常,但它似乎只在我的一个 Nodejs 文件上工作。当我附加调试器时,它会显示已附加,然后我可以在 loginController.js 文件中设置一个断点,当我在 React 前端中单击“注册”或“注销”时,它将命中该断点。当我在同一个项目中调试 React 代码时,它工作正常并命中我设置的断点。
在此之前,我可以在任何 Nodejs 文件中放置一个断点,当触发路由处理程序时,它会命中它们。但现在看来不是了。
我的仓库我唯一可以命中断点的文件是后端->控制器中的loginController.js。
我已经回到以前的项目,它也不起作用,我无法达到任何断点。我还回到了之前的提交,它确实有效。我不确定 VSCode 在最近的更新中是否有错误,但我在谷歌搜索时找不到任何东西。
我还设置了一个空白的 Express 项目,并发送了附加调试器的邮递员请求。它不会触发,但邮递员收到我回复的 res.json 消息。
我尝试了多个 luanch.json 但没有任何效果。我的 launch.json 在 .vscode 中。
使用 vscode 自行启动它
//...
"configurations": [
{
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"type": "node"
}
]
//...
将调试器附加到节点进程
$ node --inspect ./bin/www
然后在vscode中 按 F1 然后输入“附加到节点进程” 并选择您的流程 我建议你更准确地记录 pid 所以您可以确定您正在附加正确的流程
console.log(process.pid)
不要使用nodemon
也许nodemon 导致了一些问题,因为它启动应用程序的方式
重命名/backend/bin/www
也许这个文件的名称导致了所有这些问题 所以尝试将其重命名为 /backend/bin/www.js 或者类似的东西