2015-10-17 89 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]);