首先,我們應該明確一點,作為一個通用的程序,是不應該在核心里面有過多的私有定制需求的,如想在 gulp dev
后列出根目錄下所有的 html 功能,想在 gulp ftp
上傳成功后直接彈出瀏覽器窗口,斯認為,侵入性過強,不應作為一個通用工作流的集成的功能,所以,我們提供了 插件
功能。
tmt-workflow
不僅提供了多個常用任務,還開放了各個常用任務的回調(diào)接口,您只需按 node 的方式編寫插件,即可自行根據(jù)具體需求設計自己想要的功能,使得用戶不需要通讀 tmt-workflow
源碼,就可以擴展自己想要的任務,既降低了學習成本,也降低了工作流的耦合度。
下面,我們以一個簡單的示例說明如何使用 自定義插件
功能。
1. 配置 .tmtworkflowrc
//插件功能
//路徑相對于 tasks/plugins 目錄
"plugins": {
"build_devAfter": ["TmTIndex"], //build_dev 任務執(zhí)行后自動執(zhí)行
"build_distAfter": [], //build_dist 任務執(zhí)行后自動執(zhí)行
"ftpAfter": ["ftp"] //ftp 任務執(zhí)行后自動執(zhí)行
},
如上,每個字段屬性對應各個任務,以數(shù)組形式指定插件,依次執(zhí)行數(shù)組指定的插件,如我們給我們的插件命名為 TmTIndex
。
2. 在 _tasks/plugins/
目錄下新建 TmTIndex.js
var rd = require('rd'); var fs = require('fs'); var path = require('path'); //插件必需按 node 模塊規(guī)范編寫 module.exports = function (config) { // do some stuff ... }
如上,插件只需要按 node 模塊規(guī)范編寫,就可以實現(xiàn)你要的功能。
可以看到,擴展插件只需要兩步,具體想實現(xiàn)什么樣的功能,可根據(jù)具體的需求進行定制。
我們內(nèi)部已通過插件功能擴展了多個定制需求,哪里不明白隨時 Issues 。
更多建議: