VSCode: открыть новый терминал как часть задачи?

Код Visual Studio был только что обновлен, чтобы позволить запускать задачи и открывать их в разделенном терминале. Это здорово, однако я ищу еще одну вещь, чтобы сделать это идеально.

Я хотел бы иметь возможность открыть в общей сложности 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"
      }
    }
  ]
}

0 ответов

Следующее должно работать:

{
    "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- в этом выпуске обсуждается, что необходимо для настройки среды оболочки.

Другие вопросы по тегам