【问题标题】:Debugging multiple Node js Function apps in VS Code在 VS Code 中调试多个 Node js Function 应用程序
【发布时间】:2021-05-25 03:14:38
【问题描述】:

我目前正在同一个项目中开发几个节点 js 功能应用程序,我希望能够一起调试。经过一番努力,我能够在没有带有化合物的调试器的情况下运行它们。它有点工作,因为所有功能都在运行,尽管我一次只能看到一个输出。

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Func1",
            "type": "node",
            "request": "launch",
            "port": 9000,
            "preLaunchTask": "npm: start - func1"
        },
        {
            "name": "Func2",
            "type": "node",
            "request": "launch",
            "port": 9001,
            "preLaunchTask": "npm: start - func2"
        }
    ],
    "compounds": [
        {
            "name": "Compound",
            "configurations": [
                "Func1",
                "Func2"
            ]
        }
    ]
}

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "start",
            "path": "func1/",
            "problemMatcher": [],
            "label": "npm: start - func1",
            "detail": "func start"
        },
        {
            "type": "npm",
            "script": "start",
            "path": "func2/",
            "problemMatcher": [],
            "label": "npm: start - func2",
            "detail": "func start"
        }
    ]
}

我还使用 func start 在 tasks.json 和 launch.json 中尝试了不同的配置,并取得了一定的成功,并且我能够在启动其余部分时将单个函数应用程序附加到调试器。

            "type": "func",
            "label": "func: start - func1"
            "command": "host start",
            "problemMatcher": "$func-node-watch",
            "isBackground": true,
            "dependsOn": "npm: install - func1",
            "options": {
                "cwd": "${workspaceFolder}/func1"
            }

但是当我尝试添加带有另一个标签的第二个标签时,它只能识别其中一个,并且另一个应用程序的启动收到错误“找不到任务'func:start - func2'”。

我的问题是是否可以将多个函数应用程序附加到调试器,在这种情况下如何?是否也可以在同一输出终端或每个功能应用的多个终端中获取日志。我知道两者都可以在 Visual Studio 中使用 c# 实现,但在 VS Code 中是否可以使用 Node.

【问题讨论】:

    标签: azure visual-studio-code azure-functions vscode-debugger


    【解决方案1】:

    我目前正在开发几个 node js 功能应用程序 同一个项目

    1、如果你这里的函数应用是指Trigger,那么VS Code的默认设置应该可以实现(未处理的函数会处于等待状态,但是每一个标有断点的地方都会执行,但是你不能同时在不同的断点)。

    2、如果你这里的函数应用是指独立应用,那么关键是端口。以下设置可以更改本地函数应用的默认端口:

    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "",
        "FUNCTIONS_WORKER_RUNTIME": "python"
      },
      "Host": {
        "LocalHttpPort": 5861,
        "CORS": "*",
        "CORSCredentials": false
      }
    }
    

    经过以上设置,就可以同时启动两个VS Code程序Debug不同的function app,而不会造成冲突。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 2018-04-22
      • 2020-06-02
      • 2017-12-18
      相关资源
      最近更新 更多