我试图这样做,如果没有指定--theme标志它会停止gulp任务,并想知道以干燥方式完成它的最佳方式。
如果没有指定--theme,我希望每个单独的任务停止,如果不满足默认任务,我希望停止。
到目前为止,我尝试了一些没有运气的事情。
谢谢,
gulp.task('test', function() {
if(typeof(args.theme) == 'undefined' || args.theme === true) {
console.log(msg.noTheme);
return; // end task
}
// run rest of task...
});
gulp.task('test-2', function() {
if(typeof(args.theme) == 'undefined' || args.theme === true) {
console.log(msg.noTheme);
return; // end task
}
// run rest of task...
});
gulp.task('default', ['test-1', 'test-2']);
答案 0 :(得分:12)
您可以使用以下命令停止脚本:
process.exit()
答案 1 :(得分:6)
我认为最简单的方法是创建一个verifyArgs
函数,当不满足要求时会抛出错误:
function verifyArgs() {
if(typeof(args.theme) == 'undefined' || args.theme === true) {
throw Error(msg.noTheme);
}
}
gulp.task('test', function() {
verifyArgs();
// run rest of task...
});
gulp.task('test-2', function() {
verifyArgs();
// run rest of task...
});
gulp.task('default', ['test-1', 'test-2']);
答案 2 :(得分:1)
某种异步功能可能会对您有所帮助。也许是这样的:
function processArgs(callback) {
if(typeof(args.theme) == 'undefined' || args.theme === true) {
return callback(new Error('Theme Not Defined'));
}
return callback();
}
gulp.task('test', function(done) {
processArgs(function(err) {
if(err) {
console.log(err);
return done(err);
}
//else run my task
})
});