【问题标题】:VSCode: Open new terminal as part of task?VSCode:作为任务的一部分打开新终端?
【发布时间】:2019-07-01 21:09:04
【问题描述】:

Visual Studio Code 刚刚更新为允许运行任务并在拆分终端中打开它们。这很棒,但我正在寻找另一件事来完善它。

我希望能够通过一个任务打开总共 3 个终端。一个用于我的 NPM 构建,一个用于我的后端 MAVEN 构建,第三个只是一个空白的新终端,我可以在需要时用于 git 命令。

我似乎无法找到一种方法来告诉 VSC 运行一个任务,该任务只是打开一个可供使用的新终端,而无需提供命令。我什至愿意给它一个简单的命令,比如“node -v”来启动它,只要那个面板在之后仍然可用。现在它想在运行后关闭它。

这是我的任务设置:我有一个任务设置作为依赖于另外两个的构建任务。我设想将第三个添加到将打开新终端的内容:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Maven and NPM",
      "dependsOn": [ "maven", "npm" ],
      "group": {
        "kind": "build",
        "isDefault": true,
      },
    },
    {
      "label": "maven",
      "command": "...",
      "type": "shell",
      "presentation": {
        "reveal": "always",
        "group": "build"
      },
      "options": {
        "cwd": "${workspaceRoot}/server"
      }
    },
    {
      "label": "npm",
      "type": "shell",
      "command": "ng serve --port 4203 --proxy-config proxy.conf.json",
      "presentation": {
        "reveal": "always",
        "group": "build"
      },
      "options": {
        "cwd": "${workspaceRoot}/client-APS"
      }
    }
  ]
}

【问题讨论】:

    标签: visual-studio-code vscode-tasks


    【解决方案1】:

    以下应该有效:

    {
        "type": "process",
        "label": "terminal",
        "command": "/bin/bash",  // <-- your shell here
        "args": [
            "-l"  // login shell for bash
        ],
        "problemMatcher": [],
        "presentation": {
            "echo": false,  // silence "Executing task ..."
            "focus": true,
            "group": "build",  // some arbitrary name for the group
            "panel": "dedicated"
        },
        "runOptions": {
            "runOn": "folderOpen"
        }
    }
    

    当我偶然发现这个解决方案时,我试图实现一些非常相似的东西:在这里,当文件夹在 vscode 中打开时,我会自动启动(并将焦点设置在终端上)——以及进一步的任务共享相同的presentation.group 在运行时被放置在拆分终端中(新拆分与重用拆分取决于它们的presentation.panel

    (runOptions 位对于您的情况是多余的,但我保留它以防它对某人有帮助)

    注意:对于此示例,您可能需要也可能不需要 -l 选项,具体取决于您对 terminal.integrated.shell*terminal.integrated.automationShell*terminal.integrated.inheritEnv 的设置——this 问题对涉及的内容进行了一些讨论设置 shell 环境。

    【讨论】:

      猜你喜欢
      • 2022-06-17
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      • 2019-12-27
      • 2015-07-15
      相关资源
      最近更新 更多