You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode调试webpack+TypeScript项目时如何断点进入被引用TS项目代码

VS Code调试TypeScript本地引用项目的步入配置方案

完全可以实现该需求,核心是让VS Code调试器正确识别被引用项目的源码映射、路径别名,且不将目标依赖项目判定为需跳过的外部代码,具体配置步骤如下:


1. 调整两个项目的TypeScript编译配置

两个项目的tsconfig.json都需要开启源码映射,同时父项目的路径别名要和webpack配置对齐:

  • 被引用项目debug-jest-lib的tsconfig.json的compilerOptions新增/修改以下配置:
{
  "compilerOptions": {
    // 开启源码映射
    "sourceMap": true,
    // 生成类型声明文件(可选,用于类型提示)
    "declaration": true,
    // 确保sourcemap中记录的源码路径正确
    "sourceRoot": "./src"
  }
}
  • 父项目debug-jest-ref的tsconfig.json的compilerOptions新增/修改以下配置:
{
  "compilerOptions": {
    "sourceMap": true,
    "baseUrl": "./",
    // 和webpack的@mathlib别名配置对齐,让TS和调试器能找到对应源码路径
    "paths": {
      "@mathlib": ["../debug-jest-lib/src/index.ts"],
      "@mathlib/*": ["../debug-jest-lib/src/*"]
    }
  }
}

2. 调整webpack打包配置(仅针对webpack构建场景)

父项目的webpack配置中,将devtool修改为支持源码映射到原始TS文件的模式,不要使用eval类的低精度sourcemap:

module.exports = {
  // 可选值:source-map / inline-source-map / cheap-module-source-map
  devtool: 'source-map'
}

3. 配置VS Code调试规则

打开父项目的.vscode/launch.json文件,新增/修改以下配置项:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/src/index.ts",
      "preLaunchTask": "tsc: build - tsconfig.json",
      // 包含父项目和被引用项目的编译产物,让调试器能找到对应的js文件
      "outFiles": [
        "${workspaceFolder}/dist/**/*.js",
        "${workspaceFolder}/../debug-jest-lib/dist/**/*.js"
      ],
      // 允许调试器解析两个项目的sourcemap,排除无关的node_modules文件
      "resolveSourceMapLocations": [
        "${workspaceFolder}/**",
        "${workspaceFolder}/../debug-jest-lib/**",
        "!**/node_modules/**"
      ],
      // 配置跳过的文件,不要跳过被引用的lib项目代码
      "skipFiles": [
        "<node_internals>/**",
        "${workspaceFolder}/node_modules/**",
        "!${workspaceFolder}/../debug-jest-lib/**"
      ]
    }
  ]
}

4. 验证效果

  • 先重新编译debug-jest-lib项目,确保生成了最新的编译产物和sourcemap
  • 重启VS Code,打开父项目后按F5启动调试,断点命中math.add(1,1)行时按F11即可步入该方法内部查看执行逻辑

内容的提问来源于stack exchange,提问作者Code Of Light

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:45:04