调试Next.js全栈时VS Code总是在启动时中断的解决方法
解决Next.js 13全栈调试时自动在入口文件中断的问题
为什么stopOnEntry配置不生效还被提示?
你用的node-terminal类型调试配置不支持stopOnEntry字段,这个参数只适用于node类型的调试配置,所以VS Code会提示该配置不被允许。
VS Code 具体修复步骤
修改你的.vscode/launch.json,改用node类型启动服务,同时添加skipFiles跳过Next.js编译后的内部文件和依赖包,避免刷新时自动中断:
{ "version": "0.2.0", "configurations": [ { "name": "Next.js: debug full stack", "type": "node", "request": "launch", "runtimeExecutable": "npm", "runtimeArgs": ["run", "dev"], "skipFiles": [ "<node_internals>/**", "${workspaceFolder}/.next/**/*.js", "${workspaceFolder}/node_modules/**/*.js" ], "serverReadyAction": { "pattern": "started server on .+, url: (https?://.+)", "uriFormat": "%s", "action": "debugWithChrome" } } ] }
另外,打开VS Code调试工具栏,确保「自动继续(Continue on launch)」按钮(循环箭头图标)处于开启状态,即使有隐含断点也会自动跳过。
PhpStorm 修复步骤
- 打开Run/Debug配置,找到你的Next.js调试项
- 切换到「Debugger」标签页:
- 在「Skip list」中添加
.next/**和node_modules/**路径 - 取消勾选「Break at first line in JavaScript files」选项
- 在「Skip list」中添加
关于是否是Next.js的Bug
这不是Next.js的Bug。Dev模式下,Next.js每次页面刷新都会重新编译服务器端路由代码,相当于重启了部分服务进程,调试器默认会捕获进程启动的入口点,从而触发中断。通过配置跳过内部编译文件,就能避免这种自动中断的情况。
内容的提问来源于stack exchange,提问作者Ricardo Martins
相关产品推荐
相关产品推荐

