VSCode中TypeScript调试配置

一、背景

最近想用TypeScript编译项目,在创建完项目后,我发现VSCode只有在调试TypeScript的单个文件时生效,如果存在引用,再进行断点调试,则调试功能不生效了。

随后,我让Chatgpt 生成一个一套配置,发现是生效的。 因此记录一下。 下面是具体内容:

面临的问题是:

在没有Test.ts 文件时, 给hello()函数增加断点,断点功能正常;

在有Test.ts 文件时, 给hello()函数增加断点或者给test函数增加断点,断点功能不正常;

当时VSCode生成的launch.json文件内容如下:

json 复制代码
// .vscode/launch.json
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "启动程序",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}/index.ts",
            "outFiles": [
                "${workspaceFolder}/**/*.js"
            ]
        }
    ]
}

后来我用chatgpt生成了一套json文件,能够实现我期望的调试功能。 接下来进入整体

二、TS构建的流程及相关配置文件

在VScode工程环境下,一共有三个json配置文件:

launch.json : 配置了 启动的前置任务(preLaunchTask) 和 程序启动入口(program)

tasks.json : 可以定义一些列任务。 此处就是 定义了一个 要去编译TS的任务;

tsconfig.json : 定义 ts的编译配置选项;

接下来就是这三个文件的具体内容:

json 复制代码
// file : .vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
      {
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "program": "${workspaceFolder}/dist/index.js",  // 指向编译后的入口文件
        "preLaunchTask": "TS转JS",  // 在调试前编译 TypeScript
        "outFiles": [
          "${workspaceFolder}/dist/**/*.js"  // 指定编译输出文件的位置
        ],
        "sourceMaps": true,  // 启用 source maps
        "skipFiles": [
          "<node_internals>/**"
        ]
      }
    ]
  }
json 复制代码
// file:.vscode/tasks.json
{
    "version": "2.0.0",
    "tasks": [
      {
        "label": "TS转JS",
        "type": "typescript",
        "tsconfig": "tsconfig.json",
        "problemMatcher": ["$tsc"],
        "group": {
          "kind": "build",
          "isDefault": true
        }
      }
    ]
}
json 复制代码
// tsconfig.json
{
  "compilerOptions": {
    "target": "ES6",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "sourceMap": true,  // 生成 source maps
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src"],
  "exclude": ["node_modules", "dist"]
}
相关推荐
德尔塔A3 小时前
中文全文检索加向量,我用 SQLite 做到零依赖
typescript
wflynn3 小时前
GitHub 今日推荐|rea:用 MCP 把反编译器和 AI agent 接到一起的逆向工具
typescript·开源·github·agent·agent-skills·binary-analysis
德尔塔A3 小时前
AI 改了 300KB 的文件,我让浏览器一屏都不多拿
typescript
德尔塔A3 小时前
给 Agent 写终端界面,我一个 UI 库都没装
typescript
德尔塔A3 小时前
同一条命令,在 Windows 上炸了三种方式
typescript
德尔塔A3 小时前
同一个会话,终端和浏览器同时开着会发生什么
typescript
1024奇点4 小时前
【仓颉语言入门 · 第二篇 第 12 课】
开发语言·数据库·ide·mysql·开源
迪菲赫尔曼6 小时前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
咚咚咚小柒6 小时前
【前端】LangChain.js学习
前端·javascript·人工智能·typescript·langchain·vue·ai编程
2501_915106326 小时前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程