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

VSCode环境下如何调试Serverless Framework插件?

VSCode调试Node.js+TypeScript开发的Serverless插件方案

第一步:配置调试启动文件

在项目根目录的.vscode文件夹下新建launch.json,填入以下配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "调试Serverless插件",
      "program": "${workspaceFolder}/node_modules/serverless/bin/serverless.js",
      "args": ["invoke", "local", "-f", "替换为你的函数名"],
      "sourceMaps": true,
      "outFiles": ["${workspaceFolder}/dist/**/*.js"],
      "skipFiles": ["<node_internals>/**"]
    }
  ]
}
  • 全局安装Serverless CLI的环境,可将program字段替换为全局安装路径,Mac默认路径为/usr/local/lib/node_modules/serverless/bin/serverless.js,Windows默认路径为%APPDATA%\npm\node_modules\serverless\bin\serverless.js
  • args字段可根据你要调试的场景修改,比如调试本地离线服务可填入["offline"]

第二步:配置TypeScript编译选项

在项目tsconfig.json中开启sourceMap生成,确保断点可以正确映射到TS源码:

{
  "compilerOptions": {
    "sourceMap": true,
    // 其余原有配置保持不变
    "outDir": "./dist"
  }
}

配置完成后执行一次tsc编译,确保生成的JS文件和对应的.map文件都输出到launch.json中outFiles指定的路径下。

第三步:两种挂载进程调试方式

  • 直接启动调试:在你需要排查的插件逻辑处打上断点,直接按F5启动调试,VSCode会自动挂载Serverless运行进程,执行到对应逻辑时会自动停在断点位置,可直接查看变量、调用栈等信息
  • 附加到已运行进程:如果需要调试长时间运行的场景(比如API网关本地触发请求),先在终端执行node --inspect node_modules/serverless/bin/serverless offline,再在VSCode调试面板选择「附加到Node.js进程」,选中对应的Serverless进程即可完成挂载调试

常见问题排查

  • 断点变灰无法触发:检查tsconfig.json的sourceMap是否开启,launch.json的outFiles路径是否和编译后的JS文件输出路径匹配
  • 调试时进入编译后的JS文件而非TS源码:检查编译后的.map文件是否正常生成,outFiles配置是否包含对应的.map文件路径
  • 执行时报权限错误:如果用的是全局安装的Serverless CLI,确保program字段填写的全局路径有可执行权限

内容的提问来源于stack exchange,提问作者Renan Silveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:24:00