# 是Task管理器而非我们理解的系统任务管理器
晕......其实我都不知道自己在说什么!!!原谅我是菜鸟!
用`gulp.js`的小伙都知道有个*gulp.task()*,是的,就是这个`"task"`了!
其实,不止gulp.js 有Task,其他的工具也有的,只是它们不全叫“Task”罢了。反正是一个类似任务脚本的东西,可以是脚本启动器或者任务脚本或者命令......
> 菜鸟的世界你不用懂!
为执行一个任务,可能你需要翻来覆去看好几遍脚本配置文件,然后才理出具体的任务名称(*例如gulp任务执行命令:`gulp XXXX`*),任务少的还好说,如果任务多了,那就........我们总需要有工具能帮忙列出所有的任务名称,即点即运行。
`懒人总是需要借助工具的,不然就是真懒了,懒也要懒得理直气壮。`
![joy.png](https://box.kancloud.cn/636a452085e2c332a4c71911e6a85c8f_64x64.png)
## Task Master
`Task Master` 就是这么个工具,它能自动在项目文件夹下找到脚本配置文件(例如:*gulpfile.js*),然后把脚本中的全部任务列出,便于点击执行。省去手动输入命令的麻烦!
>(类似这种工具的插件挺多的,我只说我用过的。)
它支持的脚本(TASK)类型:
* 支持 NPM Tasks.
* 支持 Gulp Tasks.
* 支持 Shell Scripts.
* 支持 Python Scripts.
* 支持 Ruby Scripts.
* 支持 Perl Scripts
* 支持 Powershell Scripts (Experimental)
----
### 1. 安装
正常安装,不需要进行配置,当然某些脚本你不想通过它来执行或者被它检测到,你可以在【设置】中排除。
```
# 设置位置在这: Task Master Configuration
# 排除的目录,因为往往一个项目,我们需要引入其他的插件,
# 而那些插件也都是有task 任务的,为了避免混淆自己的脚本任务,最好将在检测路径中排除。
# 它默认排除: **/node_modules
"task-master.excludesGlob": [
"**/node_modules"
]
# 以下脚本类型,不允许的设置为:false,默认:true。
// Enables the scanning of Gulp tasks.
"task-master.enableGulp": true,
// Enables the scanning of NPM tasks.
"task-master.enableNpm": true,
// Enables the scanning of Shell scripts.
"task-master.enableShell": true,
// Enables the scanning of Python scripts.
"task-master.enablePython": true,
// Enables the scanning of Ruby scripts.
"task-master.enableRuby": true,
// Enables the scanning of Perl scripts.
"task-master.enablePerl": true,
// Enables the scanning of Powershell scripts.
"task-master.enablePowershell": true,
```
----
### 1. 使用
使用就简单多了,它不用按ctrl+shift+p进入命令栏,它在底部菜单栏左侧生成有按钮,点击一下即可列出任务(TASK)名称,点击相应的任务即可运行。不用在终端中输入命令。
它没发现的任务配置文件的时候,是:`一个放大镜+Scanning for Tasks`按钮,此时点了没反应。
在它发现任务配置文件的时候,会变成:“Tasks”按钮,点击就能看到,自己写的命令了,然后再选择相应的任务即可会运行。
对于和我一样,自己写的脚本任务自己都不认识或者忘记任务名的小伙伴来说,这个插件确实给力。
----
### 2. 槽点
就是它反应有点慢(我指的是:它检查任务配置脚本的速度)有时候可能需要重新打开窗口(`重启vscode`)才能正常检测到。不过这些都还是能忍受的。但看在它能在任何项目目录中都能工作,这点小缺点不算什么。比起vscode每个项目的task快速运行配置(*目前支持gulp和grunt的任务项*)都要自己写一遍实在方便多了。
> 新版的vscode已经支持gulp和grunt在命令栏列出任务名并点击执行。它支持的有好几个,只是这两个是默认支持,写入全局设置中,你能够在全局设置中找到它们的配置项。
----
### 3. 使用繁琐程度,可能比vscode自带的要滴很多
最新版的`vscode` 已经默认支持gulp.js 和grunt.js的任务运行项了,也支持列出任务列表,但是使用繁琐,还需要自己配置任务项——简而言之就是vscode自带的管理器不能自动检测识别脚本任务名称。而且需要通过命令栏来执行任务,实在不算做的好,但是会在项目的根目录生成`.*`文件,这是我们不希望发生的,毕竟还要自己写.gitignore文件排除.vscode 呢。
相比之下,Task Master 是不是好很多!而且支持多种脚本。
>如果你正在学习或者使用那些脚本命令,那么Task Master 应该适合你。
## 只此一家?NO
因为大部分项目的自动化构建往往都需要脚本命令来完成,这使得脚本命令(任务名称)的管理成为一个刚需,所以此类插件是很多的,只是我一直在用它,所以也就介绍给大家,正常情况下在扩展应用管理中搜类似 “task”等关键词都能找到类似的任务管理器。就看哪一款适合你了。
----
# 小段结尾
前面我一直说,新版vscode支持Task 在命令栏列出并支持点击运行,那么到底怎么用呢?
* 首先,你的项目是自动化构建的,哪怕简单的less自动生成CSS文件。如果你的项目不需要这些,则没必要弄了。
* 其次,要有自动构建环境以及配置脚本文件,例如:*gulpfile.js*
* 最后,你可以自己手动创建文件:`.vscode/tasks.json` --->
```
# 其实是文件夹加文件:
.vscode
------/tasks.json
```
`tasks.json` 的大概(基本)代码例子:
```
{
"version": "0.1.0",
"command": "echo",
"isShellCommand": true,
"args": [],
"showOutput": "always",
"echoCommand": true,
"suppressTaskName": true,
"tasks": [
{
"taskName": "hello",
"args": ["Hello World"]
},
{
"taskName": "bye",
"args": ["Good Bye"]
}
]
}
```
只能说,它支持的功能比较多,配置项上也会更多,当你专注于一个项目时可能实用,但像我这种“好多项目”的人,标配懒人模式可能比较适合。
**具体用法用例:[https://code.visualstudio.com/docs/editor/tasks](https://code.visualstudio.com/docs/editor/tasks)**
**当你的团队或者项目不需要这些时,提交的时候记得排除。**
这结尾似乎长了点,我们就先到这吧!![coffee](https://box.kancloud.cn/06d4e6dde787543889ca7e1d56b4b3f9_64x64.png)