# 是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)