VSCode调试器如何在PM2进程重启时自动重新附着?
解决方案
步骤1:固定Node调试端口
修改package.json中的启动脚本,将默认随机端口改为固定端口,确保pm2每次重启应用都会使用相同的调试端口:
"start": "node --inspect=127.0.0.1:9229 -r tsconfig-paths/register -r ts-node/register ./src/server.ts",
步骤2:修改VSCode调试配置
在项目.vscode/launch.json中添加attach模式调试配置,核心是加入restart参数开启自动重连能力:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "attach", "name": "Attach to PM2 Auto Restart", "port": 9229, "address": "127.0.0.1", "restart": true, "skipFiles": [ "<node_internals>/**" ] } ] }
操作流程
- 运行
npm run launch启动pm2托管的应用进程 - 在VSCode调试面板选中上面创建的配置,启动调试会话即可
注意事项
- 确保你设置的固定调试端口(示例中为9229)没有被其他程序占用
- 若pm2运行在远程设备/容器内,将
address字段修改为对应设备的IP地址即可 - 进程重启后调试器需要等待1-3秒完成重连,属于正常现象
内容的提问来源于stack exchange,提问作者Seth Lutske
相关产品推荐
相关产品推荐

