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