Para executar o mesmo comando de projeto a partir do VS Code no seu Mac, defina-o como uma tarefa de workspace em .vscode/tasks.json. Em seguida, inicie-o a partir do Command Palette ou do menu Terminal em vez de digitá-lo novamente em um terminal. Este guia usa npm test como exemplo; substitua-o por um comando que o seu projeto já suporte. As tarefas do VS Code exigem uma pasta de workspace aberta, portanto, primeiro abra a pasta do projeto no VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Crie o arquivo de tarefas no seu projeto

No VS Code, abra o Command Palette com Shift+Command+P, execute Tasks: Configure Task e escolha Create tasks.json file from template se o VS Code oferecer essa opção. Selecione Others para uma tarefa personalizada. Se o tasks.json já existir, abra-o e edite-o em vez de criar um segundo. O arquivo pertence à pasta .vscode do projeto; comitá-lo com seu projeto disponibiliza a tarefa para colaboradores que usam o VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Para o exemplo, coloque esta configuração em .vscode/tasks.json:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run project tests",
      "type": "shell",
      "command": "npm",
      "args": ["test"],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "presentation": {
        "reveal": "always",
        "panel": "dedicated"
      }
    }
  ]
}

O rótulo da tarefa (label) é o nome que você escolherá no VS Code. Aqui, command e args expressam o exemplo como o executável npm seguido de seu argumento test. Altere-os para corresponder ao comando existente do seu projeto: por exemplo, uma ferramenta de linha de comando e seus argumentos, ou um script existente. A tarefa não instala dependências, não cria um script de projeto nem determina o que o comando deve fazer. Verifique primeiro a documentação ou os scripts do próprio projeto. cwd define o diretório de trabalho como a pasta aberta como workspace; isso é importante quando um comando espera encontrar arquivos de projeto relativos a essa pasta. Visual Studio Code: Integrate with External Tools via Tasks

Execute-o novamente a partir da interface do Mac

Salve o tasks.json. Abra o Command Palette com Shift+Command+P, execute Tasks: Run Task e selecione Run project tests. Você também pode usar Terminal > Run Task. Depois que a tarefa terminar, repita essas etapas e selecione o mesmo rótulo. A tarefa configurada é executada no terminal integrado do VS Code. Visual Studio Code: Integrate with External Tools via Tasks

No exemplo, reveal: always traz o painel do terminal para frente quando a tarefa é executada. panel: dedicated reutiliza um terminal para esta tarefa em execuções posteriores, mantendo sua saída separada de outras tarefas. Para manter a saída em segundo plano, defina reveal como never; você precisará trazer o painel do terminal para frente manualmente para inspecioná-lo. Essas opções afetam a apresentação, não o comportamento do comando ou o seu sucesso. Visual Studio Code: Integrate with External Tools via Tasks

Combine a configuração com a forma como seu comando é executado

Use type: shell quando o comando depender do comportamento do shell. Para um comando que deve iniciar um executável diretamente, type: process pode evitar a interpretação do shell. O VS Code documenta ambos os tipos de tarefa; escolha de acordo com o comando e os argumentos de que precisa. Com tarefas de shell, espaços e caracteres especiais podem exigir o uso de aspas. Separar o executável e os argumentos como no exemplo ajuda a evitar a inclusão de toda a linha de comando em uma única string, embora as regras de escape específicas do shell ainda se apliquem quando necessário. Visual Studio Code: Integrate with External Tools via Tasks

Se o comando deve iniciar em uma subpasta, altere cwd para um caminho sob ${workspaceFolder}, como ${workspaceFolder}/client. ${workspaceFolder} refere-se à pasta aberta no VS Code, e os caminhos do macOS usam barras para a frente. Se você usar uma variável em uma tarefa de shell, lembre-se de que a substituição não adiciona aspas automaticamente; caminhos com espaços podem precisar de aspas apropriadas para o shell. Visual Studio Code: Variables Reference

Se uma tarefa funcionar em uma janela do Terminal, mas falhar no VS Code, verifique se o executável está disponível no ambiente que o VS Code usa e se o diretório de trabalho selecionado contém os arquivos esperados. O VS Code permite que um shell de automação seja configurado separadamente por meio de terminal.integrated.automationProfile.*, ou um shell específico da tarefa por meio de options.shell; uma tarefa não garante o mesmo ambiente de um terminal interativo já aberto. Visual Studio Code: Integrate with External Tools via Tasks

Uma tarefa é uma maneira repetível de invocar um comando e inspecionar sua saída no terminal. Ela não cria um comando de projeto, não repara um comando com falha nem infere automaticamente todos os comandos usados por um projeto. Comece com um comando que já seja executado para esse projeto e, em seguida, ajuste o rótulo da tarefa, os argumentos, o diretório de trabalho e a exibição do terminal para se adequarem à sua rotina.

Fontes