typescript断点调试,用chatGpt也走了不少弯路,最终换了思路才成功

如题,刚开始搜索了一圈,各种方法尝试了都不行,如:

一、不行的探索,各种坑

  1. tsc -b -w tsconfig.json 监听变化,以为必须先编译为js才可以打断点。
  2. vscode装了typescript debugger插件,并且建立配置(launch.json中添加配置: 选 TS Debug),自动生成了配置文件。然后debug的时候总是报错:TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension “.ts” for /…/src/index.ts 查了都说可能没有安装ts-node,但是我安装过,算了重新安装一次,还是不行。。。。
  3. 最源头去搜索 vscode如何调试.ts文件。 基本步骤都是安装插件,然后运行以下命令来生成默认的 tsconfig.json 文件:tsc --init;
    配置 launch.json 文件的 “program” 字段;
    。。。 也都不行。
  4. 在搜索:vscode的launch.json要怎么设置才能断点调试ts文件
    得到这个配置还是不行:
"configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug TypeScript",
      "runtimeArgs": ["-r", "ts-node/register"],
      "args": ["${workspaceFolder}/path/to/your/file.ts"],
      "cwd": "${workspaceFolder}",
      "sourceMaps": true,
      "protocol": "inspector"
    }
  ]

name:配置的名称,您可以根据需要进行更改。
runtimeArgs:指定运行时参数,此处使用 -r ts-node/register 来使用 ts-node 运行 TypeScript 文件。
args:指定要运行的 TypeScript 文件的路径,根据您的项目结构进行相应调整。
cwd:指定工作目录,这里使用 ${workspaceFolder} 表示当前工作区的根目录。
sourceMaps:启用源映射以进行断点调试。
protocol:选择使用 Inspector 协议。

  1. gpt中各种问也基本来回这几个答案了。

二、成功的方法

  1. 前提:npm run dev是可以跑起来项目的
  2. 那么我问自己一个问题:为啥它能跑起来? 我是不是可以在这个基础上叠加调试?
  3. 于是我问gpt,dev中的这个命令是啥意思:

node --loader ts-node/esm --inspect ./src/index.ts的意思

gtp答:

它是一个命令行命令,用于在 Node.js 环境中以调试模式运行 TypeScript 文件。

解析这个命令的含义如下:

node: 运行 Node.js 进程的命令。
--loader ts-node/esm: 指定了一个自定义的加载器,ts-node/esm 是指使用了 TypeScript 的 ts-node 模块的 ES 模块加载器。
--inspect: 启用了 Node.js 的调试模式,允许通过调试器连接到运行中的进程。
./src/index.ts: 要运行的 TypeScript 文件的路径,这里假设是位于 ./src 目录下的 index.ts 文件。
通过运行该命令,您可以在调试模式下执行指定的 TypeScript 文件,并使用调试器进行调试操作,例如设置断点、查看变量值等。请确保您已经安装了相应的依赖(例如 ts-node 模块)并正确配置了调试器(例如在 VS Code 中配置 launch.json),以便成功进行调试操作。

最后一句是提示我灵感的关键:“正确配置了调试器(例如在 VS Code 中配置 launch.json),以便成功进行调试操作

于是我再问gpt:

这个要如何配置对应调试器才能断点调试src/index.ts?
gpt答:(这次的配置终于可以了)
要在 VS Code 中配置对应调试器以实现断点调试 src/index.ts 文件,您可以按照以下步骤进行设置:

打开 VS Code,并在顶部菜单栏中选择 “调试”(Debug)选项。

在侧边栏中选择 “添加配置”(Add Configuration),或者打开 .vscode/launch.json 文件(如果已存在)。

在 launch.json 文件中添加一个调试配置。如果 launch.json 文件不存在,则可以使用以下配置作为示例创建该文件:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug TypeScript",
      "runtimeArgs": [
        "--nolazy",
        "--loader",
        "ts-node/esm",
        "${workspaceFolder}/src/index.ts"
      ],
      "sourceMaps": true,
      "cwd": "${workspaceFolder}",
      "protocol": "inspector"
    }
  ]
}

总结

  1. 换着方式问gpt,它也已经反反复复的回答差不多的内容了,这时可以考虑换思路了。并且关键一点是进一步学习一点知识,并用对比思维提问自己:如上面的可以dev运行跑起项目,断点调试却不行,那么就可以了解一下为什么dev行 我本来还想着了解完再看怎么结合调试配置的(就像以前调试nodejs时那样),但gpt给的解释已经足以启发我找到跟dev对应的调试配置了,于是我按它给我的话提炼丢回去给它,并得到我想要的结论。
  2. 之前的那些配置如ts-node/register 没有抓住重点,应该用–nolazy结合ts-node/esm
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想在 VS Code 中使用 Edge 浏览器进行 TypeScript 项目的断点调试,可以使用 Edge 调试扩展。以下是具体步骤: 1. 确保已经安装了 TypeScript、VS Code 和 Edge 浏览器。 2. 在 VS Code 中打开 TypeScript 项目。 3. 在 Edge 浏览器中安装 `Microsoft Edge Debugger` 扩展。可以通过打开 Edge 扩展商店,搜索 `Microsoft Edge Debugger` 并安装。 4. 在项目根目录下创建一个 `launch.json` 文件。可以通过点击 VS Code 左侧的调试按钮,然后在弹出的面板中点击齿轮图标(打开“launch.json”)创建该文件。 5. 在 `launch.json` 文件中添加一个配置项,如下所示: ```json { "version": "0.2.0", "configurations": [ { "name": "Debug with Edge", "type": "edge", "request": "launch", "url": "http://localhost:3000", "webRoot": "${workspaceFolder}", "sourceMaps": true, "sourceMapPathOverrides": { "webpack:///./src/*": "${webRoot}/src/*" } } ] } ``` 其中,`name` 是该配置项的名称,`type` 是调试的类型,`request` 是调试请求类型,`url` 是指定要调试的 URL 地址,`webRoot` 是指定项目根目录,`sourceMaps` 是指定是否使用源映射,`sourceMapPathOverrides` 是指定源映射路径覆盖。 6. 在 VS Code 中按 `F5` 或点击调试按钮,选择 `Debug with Edge` 配置项开始调试。 7. 在 Edge 浏览器中打开调试器(快捷键 F12),就可以在 VS Code 中设置的断点位置进行调试了。 以上就是在 VS Code 中使用 Edge 浏览器进行 TypeScript 项目的断点调试的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值