如何在WebStorm中使用TypeScript以调试模式运行Nodemon

7
我可以帮您翻译成中文。这段内容是关于编程的,讲述了使用NodeJS/Express + Nodemon建立一个基本的Express服务器,并在WebStorm中运行debug/inspect脚本时遇到了编译错误。根据这里的说明和这里的帖子,(精简后的)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"
  }

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

enter image description here

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

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

有任何想法为什么会出现这个错误?

命令npm run dev没有生成错误。经过进一步调查,当针对.ts文件时,nodemon会自动替换为ts-node。而ts-node则建议通过注册ts-node并使用node命令运行服务器进行调试。

如果需要使用高级node.js CLI参数(例如--inspect),请使用node -r ts-node/register代替ts-node CLI。

1个回答

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

您可以修改您的脚本如下:

"debug": "nodemon --exec \"node --inspect-brk=0.0.0.0:9229 --require ts-node/register src/app.ts\""

确保--inspect-brk参数传递给Node.js而不是ts-node


谢谢!我希望你们能把这个加入到核心文档中! - tmptplayer
我不完全理解 --exec,你能否将其放入 nodemon.json 文件中?如果您能在其中添加更多文本以提供有关此处正在发生的情况的更多信息,那就太好了。 - Nebulosar
只是来这里说谢谢。 - Fabio Espinosa
1
对我来说,这只能使用 --inspect= 而不是 --inspect-brk= - TechWisdom
我不得不手动安装ts-node,但是这样就可以了。npm i -D ts-node - TJBlackman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接