VSCode通过launch.json启动进程时Node debugger无法自动附着如何解决
排查解决步骤
- 先禁用再重新启用VSCode内置的JavaScript Debugger插件,重启VSCode后重试调试。间隔很久未开发的场景下,插件自动更新后的缓存损坏、新旧配置兼容问题是高发诱因,这一步能解决80%以上无明确原因的自动附着失效问题。
- 检查项目根目录下的
.vscode/launch.json配置的program字段路径是否和你当前重写后的入口文件路径匹配,即使整体配置和旧版本一致,重写代码时如果修改了入口文件位置、文件名,会导致调试启动时实际运行的进程不是预期进程,自动附着逻辑无法命中。 - 检查项目的Node版本和VSCode使用的Node版本是否一致:打开VSCode终端执行
node -v,和你本地全局/项目nvm指定的Node版本做对比,如果存在版本差,切换到对应版本后重装依赖重试即可。 - 检查是否存在端口占用:Node调试默认使用9229端口,如果有其他进程占用了该端口,自动附着会静默失败,你可以在launch.json中新增
port字段指定一个未被使用的端口,示例配置片段如下:
{ "type": "node", "request": "launch", "name": "Launch Discord Bot", "program": "${workspaceFolder}/index.js", "port": 9230 }
- 排查DJS库的子进程逻辑:如果重写代码时新增了分片启动、多进程逻辑,默认的自动附着规则只会识别主进程,需要在launch.json中新增
autoAttachChildProcesses: true配置,才能自动附着到DJS启动的子进程上。
内容的提问来源于stack exchange,提问作者Shooterism
相关产品推荐
相关产品推荐

