Utilizando tasks.json versión 2.0.0, no he podido hacerlo de modo que, cuando construyo mi aplicación, se ejecutan varias tareas al mismo tiempo. Estoy usando gulp para mi compilación SCSS, y ejecutar mi tarea Compile/minify cms.scss por sí solo funciona bien, por lo que no es un problema con la tarea en sí, solo el corredor de tareas de VS Code. Cuando Run Build Task en VS Code, mi tarea de gulp no se está ejecutando, a pesar de que tiene "group": "build", solo la dotnet sí.

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"
        }
    ]
}

De acuerdo con la documentación de VS Code Tasks:

grupo : define a qué grupo pertenece la tarea. En el ejemplo, pertenece al grupo test. Las tareas que pertenecen al grupo de prueba se pueden ejecutar ejecutando Ejecutar tarea de prueba desde la Paleta de comandos .

La tarea dotnet build está teniendo éxito, entonces, ¿no debería ejecutarse también la otra tarea, que también es parte del grupo build? ¿Qué estoy haciendo mal?

11
Jacob Stamm 8 sep. 2018 a las 21:22

3 respuestas

La mejor respuesta

El problema es que "Ejecutar tarea de prueba" y "Ejecutar tarea de compilación" no ejecutan todas las tareas en ese grupo específico. Por lo general, obtiene una selección desplegable para que pueda elegir qué tarea ejecutar. Como ha especificado una de las tareas como predeterminada, se omitirá la selección y, en su lugar, se ejecutará la tarea predeterminada.

Puede solucionarlo agregando dependencias. Tome el siguiente ejemplo:

{
    "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"
        }
    ]
}

Como Echo 1 depende de Echo 2, Echo 2 se ejecutará antes de ejecutar Echo 1. Tenga en cuenta que la definición es una lista, por lo que se puede especificar más de una tarea. En ese caso, las tareas se ejecutan en paralelo.

En su caso, agregar "dependsOn":["Compile/minify cms.scss"] a su tarea de compilación principal debería ejecutar ambas tareas.

17
G.G 19 sep. 2018 a las 09:54

Poner un complemento en package.json var gulpLoadPlugins = require ('gulp-load-plugins'), plugins = gulpLoadPlugins ();

Lea más sobre ese complemento, vea este Cómo construir y desarrollar sitios web con Gulp puede ayudar

0
mpes. 15 sep. 2018 a las 21:28

Verifique que su configuración esté habilitada para la detección automática de Gulp. ("gulp.autoDetect": "on")

0
Sana Ajani 14 sep. 2018 a las 00:13