NodeJS 节点使用vscode进行无服务器脱机调试

8ehkhllq  于 2023-02-03  发布在  Node.js
关注(0)|答案(3)|浏览(218)

我正在使用VS代码开发AWS Lambda函数,我开始使用无服务器框架和无服务器离线库,但是,我无法使用VS代码的调试模式来本地调试代码。
我指的是许多网站,以下是其中之一:https://medium.com/@OneMuppet_/debugging-lambada-functions-locally-in-vscode-with-actual-break-points-deee6235f590
我的项目结构如下:

Package.json

launch.json

当我开始调试时,我收到以下错误:

有人能指导一下吗,用正确的配置?

9jyewag0

9jyewag01#

在package.json中添加调试脚本:

"scripts": {
.......
    "debug": "node --inspect node_modules/serverless/bin/serverless offline -s dev",
.........
}

VS代码lunch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "name": "Serverless",
      "runtimeExecutable": "npm",
      "runtimeArgs": [
        "run",
        "debug"
      ],
      "port": 9229
    }
  ]
}

然后从VS代码开始调试

dfty9e19

dfty9e192#

您看到的警告是弃用警告;自Node 7.7.0起,旧版调试器(--debug)已弃用。将节点调试器附加到无服务器脱机的正确方法是使用--inspect

node --inspect $(npm bin)/sls offline start
sczxawaw

sczxawaw3#

如果你有一个JSON格式的有效示例事件,并且你可以一次调试一个函数,那么下面的配置对我来说非常有效,它完全按照你的期望启用断点和单步调试:

{
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "name": "sls invoke local: myFunction",
      "runtimeExecutable": "sls",
      "runtimeArgs": [
        "invoke",
        "local",
        "-f",
        "loadOptions",
        "-p",
        "activities/myFunction/myFunction-event.json"
      ],
    },

相关问题