web-dev-qa-db-fra.com

Comment exécuter plusieurs tâches dans VS Code on build?

À l'aide de tasks.json version 2.0.0, je n'ai pas été en mesure de faire en sorte que, lorsque je construis mon application, plusieurs tâches soient exécutées en même temps. J'utilise gulp pour ma compilation SCSS, et exécuter ma tâche Compile/minify cms.scss sur ses propres fonctions fonctionne correctement. Ce n'est donc pas un problème avec la tâche elle-même, mais simplement le coureur de tâches de VS Code. Lorsque je Run Build Task dans VS Code, ma tâche gulp n'est pas en cours d'exécution, même si elle a "group": "build" (seule la variable dotnet l'est).

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/HpsCoreWeb.csproj"
            ],
            "problemMatcher": "$msCompile",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Compile/minify cms.scss",
            "type": "gulp",
            "task": "cms.scss:cms.min.css",
            "problemMatcher": "$node-sass",
            "group": "build"
        }
    ]
}

Selon la documentation de VS Code Tasks :

group: définit le groupe auquel la tâche appartient. Dans l'exemple, il appartient au groupe test. Les tâches appartenant au groupe de test peuvent être exécutées en exécutant Run Test Task à partir de la palette Command.

La tâche dotnet build est en cours de réalisation; l'autre tâche, qui fait également partie du groupe build, ne devrait-elle pas être exécutée également? Qu'est-ce que je fais mal?

5
Jacob Stamm

Le problème est que "Run Test Task" et "Run Build Task" n'exécutent pas toutes les tâches de ce groupe spécifique. Habituellement, vous obtenez une sélection déroulante vous permettant de choisir la tâche à exécuter. Puisque vous avez spécifié l'une des tâches par défaut, la sélection est ignorée et la tâche par défaut est exécutée.

Vous pouvez contourner ce problème en ajoutant des dépendances. Prenons l'exemple suivant:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Echo 1",
            "command": "echo",
            "type": "Shell",
            "args": [ "echo1" ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "dependsOn":["Echo 2"]
        },
        {
            "label": "Echo 2",
            "type": "Shell",
            "command": "echo",
            "args": [ "echo2" ],
            "group": "build"
        }
    ]
}

Comme Echo 1 dépend de Echo 2, Echo 2 sera exécuté avant d'exécuter Echo 1. Notez que la définition est une liste, vous pouvez donc spécifier plusieurs tâches. Dans ce cas, les tâches sont exécutées en parallèle.

Dans votre cas, ajouter "dependsOn":["Compile/minify cms.scss"] à votre tâche de construction principale devrait exécuter les deux tâches.

4
G.G

Mettez un plugin dans package.json var gulpLoadPlugins = require('gulp-load-plugins'), plugins = gulpLoadPlugins();

En savoir plus sur ce plugin, voir ceci Comment construire et développer des sites Web avec Gulp Peut aider

0
mpes.

Vérifiez que vos paramètres sont activés pour la détection automatique de Gulp. ("gulp.autoDetect": "on")

0
Sana Ajani