WebStorm Node.js TypeScript Express 调试卡在连接到本地主机上

WebStorm Node.js TypeScript Express debug stuck on connecting to localhost

我正在尝试使用 WebStorm 调试我的 TypeScript Express 应用程序。

我在 package.json

中有这个调试脚本
"scripts": {
    ...
    "debug": "node --inspect-brk=9229 --require ts-node/register -r tsconfig-paths/register server.ts"
}

I 运行 npm run debug 在命令行和下面加载

Debugger listening on ws://127.0.0.1:9229/<somerandomid>
For help see https://nodejs.org/en/docs/inspector

现在我可以通过转到 Chrome 从 Chrome 检查器进行调试,输入 chrome://inspect/ 并且 server.ts 会出现在远程目标中,我可以调试单击检查检查 TypeScript。因此我知道问题不在我的 node.js 配置方面。

问题是,我在使用 WebStorm 时无法调试。

我尝试了以下 WebStorm 调试配置:

Attach to Node.js/Chrome
Host: localhost
Port: 9229
Attach to: Chrome or Node.js > 6.3 started with --inspect

但是当我在 WebStorm 中调试时,调试器一直说 "Connecting to localhost:9229" 并且没有任何反应。即使我在 server.ts 等

中设置了断点,它也不会进入断点

我试过禁用防火墙,还是不行。尝试使用 --inspect 而不是 --inspect-brk,仍然无效。

我做错了什么,如何使用我的 node.js Express TypeScript 配置让 WebStorm 调试到断点?

使用您的方式启动 app/attach 调试器对我来说效果很好。你使用什么 WebStorm 版本? 这里有 2 种其他方式来调试您的应用程序:

  • 使用Node.js 运行配置(创建类似的配置并按调试):

  • 使用 NPM 运行 配置:

    1. 将您的脚本更改为 "debug": "node %NODE_DEBUG_OPTION% --require ts-node/register -r tsconfig-paths/register server.ts"(如果您使用的是 Linux/Mac OSX,请将 %NODE_DEBUG_OPTION% 替换为 $NODE_DEBUG_OPTION

    2. 单击装订线中的箭头,选择调试