当我使用nodemon和ts-node时,为什么节点检查器无法启动?

10 debugging node.js typescript nodemon ts-node

我有一个用打字稿编写的简单节点服务器。我的package.json配置为:

"scripts": {
  "build": "tsc",
  "dev": "nodemon --watch src/**/* -e ts,json --exec ts-node ./src/server.ts",
  "debug": "nodemon  --verbose  --watch src/**/* -e ts,json --exec ts-node --inspect ./src/server.ts"
},
Run Code Online (Sandbox Code Playgroud)

当我运行时,npm run devnodemon将启动服务器,并在进行任何更改后重新启动它。

[02/28/18 20:45:53]  npm run dev

> pq-api@1.0.0 dev C:\Users\joe\pq\pq-api
> nodemon --watch src/**/* -e ts,json --exec ts-node ./src/server.ts

[nodemon] 1.15.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: src/**/*
[nodemon] starting `ts-node ./src/server.ts`
initializing config to development
info: PQ-API running on port 3000
Run Code Online (Sandbox Code Playgroud)

但是,当我运行npm run debug(以便可以连接调试器)时,它似乎开始启动,但会永远挂起

[02/28/18 20:39:30]  npm run debug

> pq-api@1.0.0 debug C:\Users\joe\pq\pq-api
> nodemon  --verbose  --watch src/**/* -e ts,json --exec ts-node --inspect ./src/server.ts

[nodemon] 1.15.1
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 10156 to restart
[nodemon] watching: src/**/*
[nodemon] watching extensions: ts,json
[nodemon] starting `ts-node --inspect ./src/server.ts`
[nodemon] spawning
[nodemon] child pid: 13344
[nodemon] watching 12 files
Run Code Online (Sandbox Code Playgroud)

这就是所有输出。该脚本从不执行;服务器永远不会启动,并且检查器永远无法连接。

节点8.94
nodemon 1.15.1
ts-node 5.0.0
打字稿2.7.2

小智 13

使用ts-node 5.0.0,您不再--inspect flag以相同的方式传递。建议的方法是node --inspect -r ts-node/register path/to/ts。例如:

nodemon --watch src/**/* -e ts,json --exec node --inspect-brk -r ts-node/register src/app.ts

参见https://github.com/TypeStrong/ts-node/issues/537

  • 截至 2022 年 1 月,版本 10.4.0,文档仍然指向此方法。“如果您需要使用高级 node.js CLI 参数(例如 --inspect),请将它们与 node -r ts-node/register 一起使用,而不是 ts-node 的 CLI。” 来自 https://www.npmjs.com/package/ts-node (2认同)