首页 > 解决方案 > WebStorm Node.js TypeScript Express 调试卡在连接到 localhost

问题描述

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

我有这个调试脚本package.json

"scripts": {
    ...
    "debug": "node --inspect-brk=9229 --require ts-node/register -r tsconfig-paths/register server.ts"
}

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,仍然不起作用。

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

标签: node.jstypescriptexpressdebuggingwebstorm

解决方案


使用您的方式启动应用程序/附加调试器对我来说效果很好。您使用什么 WebStorm 版本?以下是调试应用程序的另外 2 种方法:

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

在此处输入图像描述

  • 使用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. 单击装订线中的箭头,选择调试

在此处输入图像描述


推荐阅读