任务执行 - Task
steamer-plugin-task
并行或串行执行自定义任务
添加任务
steamer task --add [task name]// 如:steamer task --add alloyteam// 1. 全局安装 steamer-task-alloyteam// 2. 将 steamer-task-alloyteam 里的 .steamer 内容全数拷贝到项目的 .steamer内// 3. 安装 steamer-task-alloyteam 任务所需依赖到项目中
任务配置
// 自动生成配置steamer task// .steamer/steamer-plugin-task.js/*** 如果 task 是一个文件路径字符串,并且存在,文件会被 require 之后,执行* 如果 task 是字符串且中间有空格分割,task 会被解析成命令行,直接用 spawn 执行*/module.exports = {"plugin": "steamer-plugin-task","config": {// 用对象写法是并行运行命令"dev": {0: "steamer list",1: "cde.js",},// 用数组写法是串行运行命令"dist": ["steamer kit -l","bcd.js","abc.js"]}};// .steamer/tasktask|-- abc.js|-- bcd.js|-- cde.js|-- def.js// 并行任务// cde.jsmodule.exports = function (ctx) {console.log('cde');};// def.jsmodule.exports = function (ctx) {console.log('def');};// 串行任务// bcd.jsmodule.exports = function(ctx, next) {console.log('bcd');next();};// abc.js, 最后一个任务无须执行nextmodule.exports = function(ctx) {console.log('abc');};
并行或串行运行任务
// 并行运行 dev 的命令steamer task devstart running task: steamer liststart running task: cde.js// output from node cde.jsfinishing task: cde.js// output from steamer listfinishing task: steamer list// 串行运行 dist 的命令start running task: steamer kit -l// output from steamer liststeamer task diststart running task: bcd.js// 1 second later// output from node bcd.jsstart running task: abc.js// out from node abc.js
