You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nodemon搭配VSCode调试器重启时Inspect地址已占用如何解决

解决方案

核心问题原因

你当前的启动脚本写法错误,--inspect=0.0.0.0:9229 参数被nodemon自身消费,而非传递给你要启动的Node业务进程。nodemon主进程全程不会重启,会持续占用9229调试端口,触发重启时业务进程再尝试监听同一个端口就会抛出占用错误。

方案一:保留attach模式,修正启动配置

  1. 修正package.json中的启动脚本,把调试参数传递给Node子进程:
nodemon -e js,gql --watch dist --watch typeDefs --delay 1000ms --exec "node --inspect=0.0.0.0:9229 ./dist/index.js"

提示:把delay从500ms调整到1000ms,给旧业务进程释放端口预留充足时间

  1. 项目根目录新增nodemon.json配置,强制nodemon重启时彻底销毁旧业务进程:
{
  "killSignal": "SIGKILL"
}
  1. 调整launch.json配置,增加超时参数,适配重启等待逻辑:
{
  "type": "node",
  "request": "attach",
  "name": "Debug API",
  "remoteRoot": "/workspaces/telehealth/projects/api",
  "localRoot": "${workspaceFolder}/projects/api",
  "protocol": "inspector",
  "port": 9229,
  "restart": true,
  "address": "localhost",
  "skipFiles": ["<node_internals>/**"],
  "timeout": 10000
}

完成以上修改后,调试器会在nodemon重启业务进程后自动重新attach,不需要手动启停调试器。

方案二:改用launch模式,完全自动管理生命周期

如果你不想单独启动nodemon进程,可以直接让VSCode调试器接管nodemon的启动,彻底规避端口冲突问题,对应launch.json配置如下:

{
  "type": "node",
  "request": "launch",
  "name": "Debug API with Nodemon",
  "cwd": "${workspaceFolder}/projects/api",
  "runtimeExecutable": "nodemon",
  "runtimeArgs": [
    "-e", "js,gql",
    "--watch", "dist",
    "--watch", "typeDefs",
    "--delay", "500ms"
  ],
  "program": "./dist/index.js",
  "restart": true,
  "console": "integratedTerminal",
  "skipFiles": ["<node_internals>/**"]
}

使用该配置时,直接点击VSCode调试启动按钮即可,修改代码后nodemon自动重启,调试器会自动关联新进程,完全不需要手动操作。

内容的提问来源于stack exchange,提问作者Alan Grosz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:45:07