如何在构建时在 VS Code 中运行多个任务?



使用tasks.json版本2.0.0,我无法做到这一点,以便在构建应用程序时同时运行多个任务。我正在使用gulp进行SCSS编译,并且自行运行Compile/minify cms.scss任务工作正常,因此任务本身没有问题,只是VS Code的任务运行器。当我在 VS Code 中Run Build Task时,我的 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 代码任务文档:

:定义任务所属的。在此示例中,它属于test组。可以通过从命令面板运行"运行测试任务"来执行属于测试组的任务。

dotnet build任务成功了,那么另一个任务(也是build组的一部分(是否也应该运行?我做错了什么?

问题是"运行测试任务"和"运行生成任务"不会执行该特定组中的所有任务。通常,您将获得一个下拉选择,以便选择要执行的任务。由于您已将其中一个任务指定为默认任务,因此将跳过选择,而是执行默认任务。

可以通过添加依赖项来解决此问题。举个例子:

{
"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 2Echo 2将在执行Echo 1之前执行。请注意,定义是一个列表,因此可以指定多个任务。在这种情况下,任务是并行执行的。

在您的情况下,将"dependsOn":["Compile/minify cms.scss"]添加到主构建任务应执行这两个任务。

您可以使用复合任务

下面的示例在调用"生成"任务时执行"客户端生成"和"服务器生成"任务。

{
"version": "2.0.0",
"tasks": [
{
"label": "Client Build",
"command": "gulp",
"args": ["build"],
"options": {
"cwd": "${workspaceFolder}/client"
}
},
{
"label": "Server Build",
"command": "gulp",
"args": ["build"],
"options": {
"cwd": "${workspaceFolder}/server"
}
},
{
"label": "Build",
"dependsOn": ["Client Build", "Server Build"]
}
]
}

package.json中添加"gulp-load-plugins"插件

var gulpLoadPlugins = require('gulp-load-plugins'),
plugins = gulpLoadPlugins();

要了解有关该插件的更多信息,请参阅如何使用 Gulp 构建和开发网站

仔细检查您的设置是否启用了 Gulp 自动检测:

"gulp.autoDetect": "on"

相关内容

  • 没有找到相关文章

最新更新