将多个 vscode 调试配置统一为一个

Unifying multiple vscode debug configs into one

我有一个具有以下文件夹结构的项目:

server
    somepackage
        src
            subpackage
                file.ts
        test
            subpackage
                file.spec.ts
    someotherpackage
        src
            file1.ts
        test
            file1.spec.ts
.vscode/launch.json

如果我希望能够调试当前文件,在 .vscode/launch.json 中,我需要使用 "TS_NODE_PROJECT": "${fileDirname}/../tsconfig.json""TS_NODE_PROJECT": "${fileDirname}/tsconfig.json", 创建两个配置,并且要进行调试,我们需要在 vscode 调试器中选择合适的配置。有没有办法用一个配置来做到这一点。我可以说:TS_NODE_PROJECT = dir1/tsconfig.json 如果它不存在那么它是 dir2/tsconfig.json?

使用扩展名 Command Variable,您可以根据文件路径

创建 属性 的一部分
....

    "TS_NODE_PROJECT": "${fileDirname}${input:bypath}/tsconfig.json"

....

  "inputs": [
    {
      "id": "bypath",
      "type": "command",
      "command": "extension.commandvariable.file.fileAsKey",
      "args": {
        "/somepackage/": "",
        "/someotherpackage/": "/.."
      }
    }
  ]