2015-10-17 86 views
1

我有下面的代碼,它讀取我傳遞給gulp的任務名稱:releasetest,並根據該文件決定從文件加載哪個任務組。如何從命令參數中讀取gulp任務名稱?

var argv = require('yargs').argv; 
var group = argv._[0]; 

var groups = { 
    "release": ["tasks/release/*.js", , "tasks/release/deps.json"], 
    "test": ["tasks/test/*.js", "tasks/test/deps.json"] 
}; 

require("gulp-task-file-loader").apply(null, groups[group]); 

是不是有更好的辦法來擺脫一飲而盡本身,而不是使用yargs命令的任務是什麼?

回答

0

我發現一個great tutorial關於CLI的工具。根據它,我應該使用commander,所以我這樣做。它比紗線好得多。在這種情況下使用process.argv[2]的另一種可能的解決方案,但長期使用解析器要好得多。

var program = require("commander"); 
program.parse(process.argv); 

var group = program.args[0]; 

var groups = { 
    "release": ["tasks/release/*.js", , "tasks/release/deps.json"], 
    "test": ["tasks/test/*.js", "tasks/test/deps.json"] 
}; 

require("gulp-task-file-loader").apply(null, groups[group]);