在软件开发中,自动化工具帮助我们linting(代码校验)、building(编译)、packaging(打包)、testing(测试)或者部署(部署)广泛的存在于工程实践中,如:TypeScript(编译器),ESLint、TSLint(代码校验)、Make CMake Gulp Jake Rake(编译系统)。
这些工具大多数在命令行中运行且可以在软件开发周期(编辑,编译,测试和调试)内部或外部。考虑到这些工具在软件开发周期的重要性,在VSCODE中能运行这些工具和分析结果将会非常有用。绝大多数工具都可以在shell中运行,因此task支持了启动终端,进而支持所有shell下可执行的自动化工具。
task支持shell这一优点,使得我们可以在执行task任务时就完成这些工具,而不需要像以前那样重复诸如打开终端,键入命令等重复的工作。
二、创建并执行一个task 2.1 编辑一个task内容task使用文件名为 tasks.json
的文件对其任务内容进行描述。这个文件通常放在.vscode
中,要创建这样一个json并不难,你可以直接在.vscode
中新建一个名字为task.json
文件;或者按下F1
或者ctrl
+shift
+p
进入命令搜索模式,进入搜索模式后搜索tasks,有以下选项: 可以看出,我们可以选择配置一个普通的task:
Tasks:Configure Task
,也可以选择配置一个测试任务Tasks: Configure Default Test Task
,也可以选择一个编译任务Tasks: Configure Default Build Task
。
这里我们选择配置一个普通的task任务:Tasks:Configure Task
。 接着将会弹出配置类型选择:
前面几个是编译任务,显示的内容取决于当前文件夹下文件类型和插件。选择一个下面那个
Create tasks.json file from template
, 选最后一个,执行任意内部命令(其他选项不知道什么意思= =),点击后就会出现tasks.json的内容:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "echo Hello"
}
]
}
其实tasks.json可以编辑多个任务,只需要在tasks后继续添加即可,如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "HelloTask",
"type": "shell",
"command": "echo Hello"
},
{
"label": "ByeTask",
"type": "shell",
"command": "echo bye"
},
]
}
上面分别创建了HelloTask和ByeTask两个任务。
2.2 运行一个任务按下F1找到Tasks:run task
,弹出的对话框会让我们选择执行哪一个任务,按照你的需要选择即可: 第二块可以看到我们刚刚配置的两个任务HelloTask和ByeTask,假设我们要执行HelloTask,他会让我们以哪一种形式扫描任务输出结果,因为比较简单,我们直接选择不扫描!
如果你想直接跳过选择,也就是不扫描错误和警告,可以在task.json中配置
"problemMatcher": []
,当然你在选择的时候选择Never scan XXX
执行结果如下:
关于Task的其他配置可以参考官方文档:https://go.microsoft.com/fwlink/?LinkId=733558