visual-studio-code - 如何在构建时在 VS Code 中运行多个任务?
问题描述
使用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"
}
]
}
group:定义任务所属的组。在示例中,它属于
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 2
,Echo 2
将在执行之前执行Echo 1
。请注意,定义是一个列表,因此可以指定多个任务。在这种情况下,任务是并行执行的。
在您的情况下,添加"dependsOn":["Compile/minify cms.scss"]
到您的主要构建任务应该执行这两个任务。
推荐阅读
- javascript - 如何在 React.js 中使用 componentWillUnmount 删除 setInterval
- odoo - 重叠的 Odoo 时间表
- unity3d - HoloLens - Unity:光标未与多维数据集对齐
- antlr - 使用 ANTLR 4 解析 SQL 'between' 和 'and' 表达式
- apache-kafka-streams - Kafka Streams 的 StreamsConfig.COMMIT_INTERVAL_MS_CONFIG 的合理值是多少
- entity-framework - 如何修复 EntityFrameworkCore 中的数据迁移错误?
- laravel - 在 laravel 上使用 put() 上传损坏的图像
- angular - 无法在角度 7 中执行另一个组件的方法
- ms-word - 隐藏后台按钮
- html - 如何修复 MaterializeCSS 垂直对齐