vscode 在 lerna monorepo 中启动函数应用程序

vscode launching function app in lerna monorepo

首先,我有一个结构如下的 monorepo:

repo-name/
    packages/
        backend/
        frontend/
    .vscode/

后端是一个 Azure 函数应用,其结构如下:

backend/
    functions/
        funcOne/
        funcTwo/
    scripts/
        start-debug.sh
    package.json

其次,对于backendpackage.json,我有一个脚本:

  "debug": "npm run build && FUNCTION_APP_PORT=7071 ./scripts/start-debug.sh",

start-debug.sh 脚本如下所示:

#!/bin/bash 
set -e
cd ./functions 
func extensions install 
func host start -p $FUNCTION_APP_PORT --debug VSCode

我正在尝试编写一个启动配置,以便我可以在 VSCode 中调试我的函数。

我已经根据我在那里发现的内容尝试了多种变体,但似乎没有任何效果。有没有人有什么建议?

这是我最近的尝试:

{
    "name": "Launch Backend Functions",
    "type": "node",
    "request": "launch",
    "address": "localhost",
    "protocol": "inspector",
    "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/lerna",
    "runtimeArgs": [
        "exec",
        "--scope",
        "actual-name-of-backend-package",
        "--",
        "npm"
    ],
    "args": ["run", "debug"],
    "port": 1234
}

好的,这是 VSCode 中对我有用的启动配置:

{
  "type": "node",
  "request": "attach",
  "name": "Attach by Process ID",
  "protocol": "legacy",
  "processId": "${command:PickProcess}",
  "port": 9229
},

我的步骤是

1) 转到我的 backend 存储库,然后 运行 npm run debug 运行 是我的 start-debug.sh 脚本。

2) 在 VS Code 中,我附加到 azure-function-core-tools 中的 nodejsWorker

现在,我可以单步执行函数了。