Чтобы запускать одну и ту же команду проекта из VS Code на Mac, определите её как задачу рабочей области в .vscode/tasks.json. Затем запускайте её из палитры команд или меню «Терминал» вместо повторного ввода в терминале. В этом руководстве в качестве примера используется npm test; замените её командой, которую уже поддерживает ваш проект. Для задач VS Code требуется открытая папка рабочей области, поэтому сначала откройте папку проекта в VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Создайте файл задач в проекте

В VS Code откройте палитру команд с помощью Shift+Command+P, выполните Tasks: Configure Task и выберите Create tasks.json file from template, если VS Code предлагает такой вариант. Для создания собственной задачи выберите Others. Если файл tasks.json уже существует, откройте и отредактируйте его, вместо того чтобы создавать второй. Файл должен находиться в папке проекта .vscode; его фиксация в репозитории проекта сделает задачу доступной для коллег, использующих VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Для этого примера поместите следующую конфигурацию в .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"
      }
    }
  ]
}

Метка задачи (label) — это имя, которое вы будете выбирать в VS Code. Здесь command и args описывают команду на примере исполняемого файла npm с последующим аргументом test. Измените их в соответствии с существующей командой вашего проекта: например, укажите утилиту командной строки и её аргументы или существующий скрипт. Задача не устанавливает зависимости, не создает скрипт проекта и не определяет, что должна делать команда. Сначала ознакомьтесь с документацией или скриптами самого проекта. Параметр cwd задает рабочую директорию — папку, открытую как рабочая область; это важно, когда команда ожидает найти файлы проекта относительно этой папки. Visual Studio Code: Integrate with External Tools via Tasks

Запустите её снова через интерфейс Mac

Сохраните tasks.json. Откройте палитру команд с помощью Shift+Command+P, выполните Tasks: Run Task и выберите Run project tests. Вы также можете использовать меню Терминал > Запустить задачу… (Terminal > Run Task). После завершения задачи повторите эти действия и выберите ту же метку. Настроенная задача выполняется во встроенном терминале VS Code. Visual Studio Code: Integrate with External Tools via Tasks

В этом примере параметр reveal: always выводит панель терминала на передний план при выполнении задачи. Параметр panel: dedicated повторно использует терминал для этой задачи при последующих запусках, сохраняя её вывод отдельно от других задач. Чтобы вывод оставался в фоновом режиме, установите reveal в значение never; тогда для просмотра терминала вам потребуется выводить его панель на передний план самостоятельно. Эти параметры влияют только на отображение, а не на поведение команды или успешность её выполнения. Visual Studio Code: Integrate with External Tools via Tasks

Согласуйте конфигурацию со способом запуска вашей команды

Используйте type: shell, если выполнение команды зависит от поведения оболочки. Для команды, которая должна запускать исполняемый файл напрямую, параметр type: process позволяет избежать интерпретации оболочкой. В документации VS Code описаны оба типа задач; выбирайте подходящий в зависимости от используемой команды и аргументов. При работе с задачами типа shell для пробелов и специальных символов может потребоваться экранирование кавычками. Разделение исполняемого файла и аргументов, как показано в примере, помогает избежать объединения всей командной строки в одну строку, хотя правила экранирования конкретной оболочки по-прежнему применяются там, где это необходимо. Visual Studio Code: Integrate with External Tools via Tasks

Если команда должна запускаться в подпапке, измените cwd на путь внутри ${workspaceFolder}, например ${workspaceFolder}/client. Переменная ${workspaceFolder} указывает на папку, открытую в VS Code, а пути в macOS используют прямой слеш (/). Если вы используете переменную в задаче типа shell, помните, что подстановка не добавляет кавычки автоматически; пути с пробелами могут требовать соответствующего экранирования кавычками для используемой оболочки. Visual Studio Code: Variables Reference

Если задача работает в окне «Терминала», но завершается с ошибкой в VS Code, убедитесь, что исполняемый файл доступен в среде, используемой VS Code, а выбранная рабочая директория содержит ожидаемые файлы. VS Code позволяет настроить оболочку автоматизации отдельно через terminal.integrated.automationProfile.* или задать специфичную для задачи оболочку через options.shell; задача не гарантирует совпадения среды с уже открытым интерактивным терминалом. Visual Studio Code: Integrate with External Tools via Tasks

Задача — это воспроизводимый способ вызова команды и просмотра её вывода в терминале. Она не создает команду проекта, не исправляет завершающуюся сбоем команду и не определяет автоматически каждую используемую проектом команду. Начните с команды, которая уже работает для этого проекта, а затем настройте её метку, аргументы, рабочую директорию и отображение в терминале в соответствии со своим рабочим процессом.

Источники