如何在 WebStorm 的调试模式下使用 TypeScript 运行 Nodemon

tmp*_*yer 7 node.js webstorm nodemon ts-node

我有一个非常基本的 Express 服务器设置,使用 NodeJS/Express + Nodemon。我使用 WebStorm 作为我的 IDE。

运行调试/检查脚本时,我的应用程序抛出编译时错误。按照此处的说明并了解此处的帖子,我的(简化版)package.json如下所示:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon src/app.ts",
    "debug": "nodemon --inspect=127.0.0.1:9229 src/app.ts"
  },
"devDependencies": {
    "@types/express": "^4.17.9",
    "@types/node": "^14.14.19",
    "nodemon": "^2.0.6",
    "ts-node": "^9.1.1",
    "typescript": "^4.1.3"
  }
Run Code Online (Sandbox Code Playgroud)

当我运行时npm run debug,我收到以下错误:

在此输入图像描述

我还尝试了以下方法,结果都相同:

  • "debug": "nodemon --inspect src/app.ts"
  • "debug": "nodemon --inspect=0.0.0.0:9229 src/app.ts"

任何想法为什么会发生这个错误?

该命令npm run dev不会生成错误。经过进一步调查,nodemon 在定位文件时会自动替换 ts-node .ts。反过来,ts-node建议通过注册 ts-node 并使用 node 命令运行服务器来进行调试。

如果您需要使用高级 node.js CLI 参数(例如 --inspect),请使用它们而node -r ts-node/register不是 ts-node CLI。

len*_*ena 19

您可以按如下方式修改脚本:

"debug": "nodemon --exec \"node --inspect-brk=0.0.0.0:9229 --require ts-node/register src/app.ts\""
Run Code Online (Sandbox Code Playgroud)

确保 被--inspect-brk传递到 Node.js 而不是ts-node