4

netlify dev我正在尝试在通过以下设置执行的 netlify 函数内设置断点:

设置

安装Netlify-CLI

npm install netlify-cli -g

netlify.toml

[build]
  functions = "functions/"

functions/hello.js

exports.handler = async(event, context) => {
    let output = `Hello, ${event.queryStringParameters.name}`
    return { statusCode: 200, body: output};
}

这是一个带有设置的示例项目

您应该能够通过以下方式正常运行netlify dev

netlify 开发者截图

这将在以下地址公开该功能:

http://localhost:8888/.netlify/functions/hello?name=Kyle

调试尝试

Launch.config

在 VSCode 中,您应该能够使用launch.config. 我尝试了以下配置

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": [
        "<node_internals>/**"
      ],
      "program": "${workspaceFolder}\\node_modules\\.bin\\netlify",
      "args": ["dev"]
    }
  ]
}

但我收到以下错误:

C:\Program Files\nodejs\node.exe .\node_modules\.bin\netlify dev
Uncaught c:\Users\kylemit\Documents\code\netlify-func\node_modules\.bin\netlify:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list
<node_internals>/internal/modules/cjs/loader.js:991
Process exited with code 1

节点--inspect

有很多示例利用节点的--inspectswitch`,但我不知道如何让它与 VS 代码断点一起工作。

其他主题

4

1 回答 1

0

从 Tyson Matanich 以任何方式调试功能?,您可以执行以下操作:

包.json

{
  "scripts": {
    "debug": "netlify dev --inspect",
  }
}

启动.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Node",
      "type": "pwa-node",
      "request": "launch",
      "runtimeArgs": ["run-script", "debug"],
      "runtimeExecutable": "npm",
      "skipFiles": ["<node_internals>/**"]
    }
  ]
}

示例截图

于 2021-10-01T23:04:55.300 回答