直接按f5调试.ts文件失败,因node.js调试器仅识别.js;必须配置sourcemap、outfiles路径及预编译(tsc)或即时解释(ts-node),三者缺一不可,且launch.json中type必须为pwa-node。

直接按 F5 调试 .ts 文件失败,不是 VSCode 问题,而是 Node.js 调试器根本不认识 TypeScript —— 它只执行 .js,必须靠 sourceMap + outFiles + 执行方式三者协同,缺一不可。
launch.json 中 type 必须是 pwa-node,不是 node
旧版 type: "node" 在 VSCode 1.80+ 已弃用,断点会静默失效,控制台无报错但不命中。
新版调试器强制要求 type: "pwa-node",否则 sourceMap 解析逻辑不触发。
常见错误现象:断点变空心灰点、debugger 语句被跳过、堆栈显示 xxx.js 但无法跳转回 .ts 行。
program 指向 .ts 入口,但必须配 preLaunchTask 或 runtimeExecutable
VSCode 不会自动编译或解释 TypeScript,它只负责启动进程。你得明确告诉它“怎么让 .ts 跑起来”:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 用
tsc预编译:设置"program": "${workspaceFolder}/src/index.ts",同时"preLaunchTask": "tsc: build - tsconfig.json"(需 tasks.json 存在对应任务) - 用
ts-node即时执行:改用"runtimeExecutable": "npx","args": ["ts-node", "${workspaceFolder}/src/index.ts"],此时必须删掉outFiles和sourceMaps字段(因为不生成 .js) - 别混用:同时写
program和runtimeExecutable会导致启动冲突,VSCode 会忽略其中一个
tsconfig.json 里 sourceMap 和 outDir 必须开启且路径一致
编译阶段没生成 .js.map,调试器再怎么配都白搭。关键项不能注释或删减:
-
"sourceMap": true—— 必须为true,否则 launch.json 里sourceMaps: true无效 -
"outDir": "./dist"—— 和 launch.json 中outFiles的 glob 路径严格对应,比如"${workspaceFolder}/dist/**/*.js" -
"rootDir": "./src"—— 明确源码根目录,避免 tsc 把node_modules或配置文件也打包进输出 -
"include": ["src/**/*"]—— 注意是双星号**,单星号*只匹配一级子目录,容易漏文件
Windows 上 tsc 命令被阻止?不是权限问题,是 PowerShell 策略
报错 File xxx.ps1 cannot be loaded because running scripts is disabled,和 TypeScript 无关,是系统级限制:
- 以管理员身份打开 PowerShell
- 运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(仅当前用户生效,安全且无需重启) - 别用
Unrestricted,也不需要全局策略变更 - 验证:在终端执行
tsc --version应返回版本号,而非策略错误
真正卡住人的地方,往往不是配置项写错,而是 tsc 编译没成功却以为成功了——检查 dist 目录下有没有生成对应的 .js 和 .js.map 文件,没有就说明 tsconfig.json 或 preLaunchTask 没生效,别急着调 launch.json。










