如何使用 ts-node-dev 和正确的行号在 Visual Studio Code 中调试 Typescript 代码
Posted
技术标签:
【中文标题】如何使用 ts-node-dev 和正确的行号在 Visual Studio Code 中调试 Typescript 代码【英文标题】:How to debug Typescript code in Visual Studio Code with ts-node-dev and correct line numbers 【发布时间】:2020-07-26 04:11:07 【问题描述】:我有一个 Typescript 项目,启动如下:
ts-node-dev --preserve-symlinks --inspect=0.0.0.0 -- src/server.ts
我可以使用 Visual Studio Code 对其进行调试,但调试器在错误的行处中断。我能想到的唯一合理的解释是 ts-node-dev 没有将调试器指向源映射(它们在那里)。
如何正确调试 ts-node-dev 执行的 Typescript 代码?
【问题讨论】:
【参考方案1】:我有同样的问题,这让我来到了这个(旧)帖子。我在https://gist.github.com/cecilemuller/2963155d0f249c1544289b78a1cdd695 找到了我的问题的解决方案,所以我将其发布在这里,以防其他人发现自己在这里!
此 VS Code 配置允许我在我的 TypeScript 代码中正确行的断点处停止:
"version": "0.2.0",
"configurations": [
"name": "Example",
"type": "node",
"request": "launch",
"runtimeExecutable": "node",
"runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"],
"args": ["src/script.ts", "--example", "hello"],
"cwd": "$workspaceRoot",
"internalConsoleOptions": "openOnSessionStart",
"skipFiles": ["<node_internals>/**", "node_modules/**"]
]
【讨论】:
【参考方案2】:使用 ts-node-dev 在 vs 代码中进行调试以附加和启动调试器的配置:
package.json:
"scripts":
"dev:debug": "ts-node-dev --transpile-only --respawn --inspect=4321 --project tsconfig.dev.json src/server.ts",
"dev": "ts-node-dev --transpile-only --respawn --project tsconfig.dev.json src/server.ts",
launch.json:
"version": "0.1.0",
"configurations": [
"type": "node",
"request": "attach",
"name": "Attach to dev:debug",
"protocol": "inspector",
"port": 4321,
"restart": true,
"cwd": "$workspaceRoot"
,
"type": "node",
"request": "launch",
"name": "Debug",
"protocol": "inspector",
"cwd": "$workspaceRoot",
"runtimeExecutable": "npm",
"runtimeArgs": ["run-script", "dev"]
]
【讨论】:
以上是关于如何使用 ts-node-dev 和正确的行号在 Visual Studio Code 中调试 Typescript 代码的主要内容,如果未能解决你的问题,请参考以下文章
ts-node-dev 错误选项:--transpileOnly 和错误选项:--ignoreWatch
如何在源代码中创建具有正确行号的 FxCop Problem() 对象