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

VS Code中AWS SAM无服务器TypeScript应用调试问题咨询

问题1:TypeScript源码级单步调试实现

完全可以实现,不需要SAM或AWS服务额外支持,仅需配置TypeScript编译参数和VS Code调试规则即可:

  • 第一步修改项目根目录的tsconfig.json,开启source map生成:
    {
      "compilerOptions": {
        "sourceMap": true,
        "inlineSources": true,
        "outDir": "./dist",
        // 其余原有配置保持不变
      }
    }
    
  • 第二步修改VS Code的.vscode/launch.json中的SAM调试配置,新增source map映射规则:
    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "node",
          "request": "launch",
          "name": "SAM Local Debug TS",
          // 其余原有调试启动参数保持不变
          "sourceMaps": true,
          "outFiles": ["${workspaceFolder}/dist/**/*.js"],
          "resolveSourceMapLocations": ["${workspaceFolder}/dist/**", "!**/node_modules/**"]
        }
      ]
    }
    

配置完成后直接在TypeScript源码文件上打断点即可命中,和客户端TS项目调试体验完全一致。

问题2:本地持续运行监听HTTP请求实现

不需要部署到AWS,直接通过SAM CLI的预热容器参数配合VS Code附加调试即可实现和sam local start-api一致的持续运行效果:

  • 第一步执行命令启动带调试模式的持续运行API服务:
    sam local start-api -d 5858 --warm-containers EAGER
    
    参数说明:-d 5858指定Node调试端口为5858,--warm-containers EAGER配置容器预热,请求处理完成后不会销毁,持续运行监听后续请求。
  • 第二步在.vscode/launch.json中新增附加调试配置:
    {
      "type": "node",
      "request": "attach",
      "name": "Attach to SAM Local API",
      "port": 5858,
      "address": "localhost",
      "localRoot": "${workspaceFolder}",
      "remoteRoot": "/var/task",
      "sourceMaps": true,
      "outFiles": ["${workspaceFolder}/dist/**/*.js"]
    }
    

配置完成后启动上述SAM命令,再在VS Code中运行附加调试配置,后续所有HTTP请求都会命中你在TS源码中打的断点,修改代码后仅需执行tsc重新编译即可生效,不需要重启SAM进程,也不需要执行sam deploy。

内容的提问来源于stack exchange,提问作者Johnathon Sullinger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:39:05