Pour exécuter la même commande de projet depuis VS Code sur votre Mac, définissez-la comme tâche d'espace de travail dans .vscode/tasks.json. Lancez-la ensuite depuis la palette de commandes ou le menu Terminal au lieu de la retaper dans un terminal. Ce guide utilise npm test comme exemple ; remplacez-le par une commande que votre projet prend déjà en charge. Les tâches VS Code nécessitent un dossier d'espace de travail ouvert ; ouvrez donc d'abord le dossier du projet dans VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Créer le fichier de tâche dans votre projet

Dans VS Code, ouvrez la palette de commandes avec Maj+Commande+P, exécutez Tâches : Configurer la tâche (Tasks: Configure Task), et choisissez Créer le fichier tasks.json à partir d'un modèle (Create tasks.json file from template) si VS Code propose ce choix. Sélectionnez Autres (Others) pour une tâche personnalisée. Si tasks.json existe déjà, ouvrez-le et modifiez-le au lieu d'en créer un second. Le fichier doit se trouver dans le dossier .vscode du projet ; le commiter avec votre projet rend la tâche accessible aux collaborateurs qui utilisent VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Pour cet exemple, placez cette configuration dans .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"
      }
    }
  ]
}

Le libellé de la tâche (label) est le nom que vous choisirez dans VS Code. Ici, command et args représentent l'exemple sous forme de l'exécutable npm suivi de son argument test. Modifiez-les pour correspondre à la commande existante de votre projet : par exemple, un outil en ligne de commande et ses arguments, ou un script existant. La tâche n'installe pas de dépendances, ne crée pas de script de projet et ne détermine pas ce que la commande doit faire. Vérifiez d'abord la documentation ou les scripts propres au projet. cwd définit le répertoire de travail sur le dossier ouvert en tant qu'espace de travail ; cela a son importance lorsqu'une commande s'attend à trouver les fichiers du projet de manière relative à ce dossier. Visual Studio Code: Integrate with External Tools via Tasks

L'exécuter à nouveau depuis l'interface Mac

Enregistrez tasks.json. Ouvrez la palette de commandes avec Maj+Commande+P, exécutez Tâches : Exécuter la tâche (Tasks: Run Task), et sélectionnez Run project tests. Vous pouvez également utiliser Terminal > Exécuter la tâche… (Terminal > Run Task). Une fois la tâche terminée, répétez ces étapes et sélectionnez le même libellé. La tâche configurée s'exécute dans le terminal intégré de VS Code. Visual Studio Code: Integrate with External Tools via Tasks

Dans l'exemple, reveal: always amène le panneau du terminal au premier plan lors de l'exécution de la tâche. panel: dedicated réutilise un terminal pour cette tâche lors des exécutions ultérieures, séparant sa sortie de celle des autres tâches. Pour conserver la sortie en arrière-plan, définissez reveal sur never ; vous devrez alors faire passer le panneau du terminal au premier plan vous-même pour l'examiner. Ces options influent sur la présentation, non sur le comportement de la commande ou sur sa réussite. Visual Studio Code: Integrate with External Tools via Tasks

Adapter la configuration à la manière dont s'exécute votre commande

Utilisez type: shell lorsque la commande dépend du comportement du shell. Pour une commande qui doit lancer un exécutable directement, type: process permet d'éviter l'interprétation par le shell. VS Code documente ces deux types de tâches ; choisissez en fonction de la commande et des arguments dont vous avez besoin. Avec les tâches shell, les espaces et les caractères spéciaux peuvent nécessiter des guillemets. Séparer l'exécutable et les arguments comme dans l'exemple permet d'éviter d'englober toute la ligne de commande dans une seule chaîne, bien que les règles de guillemets propres au shell s'appliquent toujours le cas échéant. Visual Studio Code: Integrate with External Tools via Tasks

Si la commande doit démarrer dans un sous-dossier, modifiez cwd pour un chemin sous ${workspaceFolder}, tel que ${workspaceFolder}/client. ${workspaceFolder} fait référence au dossier ouvert dans VS Code, et les chemins macOS utilisent des barres obliques (/). Si vous utilisez une variable dans une tâche shell, rappelez-vous que la substitution n'ajoute pas automatiquement de guillemets ; les chemins contenant des espaces peuvent nécessiter des guillemets adaptés au shell. Visual Studio Code: Variables Reference

Si une tâche fonctionne dans une fenêtre de Terminal mais échoue dans VS Code, vérifiez que l'exécutable est disponible pour l'environnement utilisé par VS Code et que le répertoire de travail sélectionné contient les fichiers attendus. VS Code permet de configurer séparément un shell d'automatisation via terminal.integrated.automationProfile.*, ou un shell propre à la tâche via options.shell ; une tâche ne garantit pas le même environnement qu'un terminal interactif déjà ouvert. Visual Studio Code: Integrate with External Tools via Tasks

Une tâche est un moyen répétable d'invoquer une commande et d'inspecter sa sortie dans le terminal. Elle ne crée pas de commande de projet, ne répare pas une commande défaillante et ne déduit pas automatiquement chaque commande utilisée par un projet. Commencez par une commande qui s'exécute déjà pour ce projet, puis ajustez son libellé de tâche, ses arguments, son répertoire de travail et son affichage dans le terminal pour les adapter à vos habitudes.

Sources