Как запустить несколько задач в VS Code на билде? - PullRequest
0 голосов
/ 08 сентября 2018

Используя tasks.json версию 2.0.0, я не смог сделать так, чтобы при сборке приложения одновременно выполнялось несколько задач.Я использую gulp для моей SCSS-компиляции, и выполнение моей задачи Compile/minify cms.scss само по себе работает нормально, так что это не проблема с самой задачей, просто средство выполнения задач VS Code.Когда я Run Build Task в VS Code, моя задача gulp не запускается, хотя она имеет "group": "build" - только dotnet.

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

Согласно документации VS Code Tasks :

group : определяет, к какой группе относится задача.В данном примере он принадлежит группе test.Задачи, принадлежащие к группе тестов, можно выполнить, запустив Запустить тестовое задание из Палитры команд .

Задача dotnet build выполняется успешно, поэтомуне должна ли выполняться другая задача, также входящая в группу build?Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Проблема в том, что «Выполнить тестовую задачу» и «Выполнить задачу сборки» не выполняют все задачи в этой конкретной группе. Обычно вы получаете выпадающий список, чтобы вы могли выбрать, какую задачу выполнить. Поскольку вы указали одну из задач по умолчанию, выбор будет пропущен, и вместо этого будет выполнена задача по умолчанию.

Вы можете обойти это, добавив зависимости. Возьмите следующий пример:

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

Поскольку Echo 1 зависит от Echo 2, Echo 2 будет выполнено до выполнения Echo 1. Обратите внимание, что определение является списком, поэтому можно указать несколько задач. В этом случае задачи выполняются параллельно.

В вашем случае добавление "dependsOn":["Compile/minify cms.scss"] к основной задаче сборки должно выполнить обе задачи.

0 голосов
/ 16 сентября 2018

Поместите плагин в package.json var gulpLoadPlugins = require('gulp-load-plugins'), plugins = gulpLoadPlugins();

Подробнее об этом плагине читайте здесь Как создавать и разрабатывать сайты с помощью Gulp может помочь

0 голосов
/ 14 сентября 2018

Дважды проверьте, включены ли настройки для автоматического определения Gulp. ("gulp.autoDetect": "on")

...