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

NestJS v10使用SWC构建后VSCode断点无法正常工作

解决NestJS v10 + SWC构建下VSCode断点失效问题

1. 确保SWC已启用Source Map生成

首先检查你的SWC配置是否开启了source map,这是断点能映射到TS源码的核心:

  • 若使用nest-cli.json配置:
{
  "$schema": "https://json.schemastore.org/nest-cli",
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    "deleteOutDir": true,
    "builder": "swc",
    "typeCheck": true,
    "sourceMap": true
  }
}
  • 若使用独立.swcrc文件:
{
  "jsc": {
    "parser": {
      "syntax": "typescript"
    },
    "sourceMaps": true
  },
  "sourceMaps": true
}

2. 修正VSCode launch.json配置

原配置存在参数冲突和source map映射缺失的问题,替换为以下配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Nest",
      "runtimeExecutable": "npm",
      "runtimeArgs": [
        "run",
        "start:dev"
      ],
      "envFile": "${workspaceFolder}/.env",
      "cwd": "${workspaceFolder}",
      "console": "integratedTerminal",
      "protocol": "inspector",
      "sourceMaps": true,
      "resolveSourceMapLocations": [
        "${workspaceFolder}/**",
        "!**/node_modules/**"
      ],
      "skipFiles": [
        "<node_internals>/**",
        "node_modules/**"
      ]
    }
  ]
}

关键调整点:

  • 移除了args和手动添加的--inspect-brk:Nest的start:dev搭配SWC会自动注入调试监听参数,重复添加会导致冲突。
  • 新增resolveSourceMapLocations:明确告诉VSCode从项目目录下查找source map,排除node_modules。
  • 配置skipFiles:跳过不需要调试的内部文件和依赖,避免调试时进入无关代码。

3. 确认package.json启动脚本

确保start:dev脚本使用Nest官方命令,无需额外添加SWC相关参数:

{
  "scripts": {
    "start:dev": "nest start --watch"
  }
}

Nest v10会自动识别SWC构建器,执行该命令时会用SWC编译并启动带调试的热重载服务。

4. 额外排查步骤

  • 清理构建产物:删除dist文件夹后重新启动调试,避免旧的source map干扰。
  • 检查Node.js版本:确保使用Node.js 18+(NestJS v10最低要求),低版本可能存在调试协议兼容问题。
  • 禁用第三方插件:暂时禁用VSCode中TypeScript相关的第三方插件,排查是否有工具冲突。

内容的提问来源于stack exchange,提问作者Gokhan AYHAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:37:52