如果条件符合,停止Gulp任务
我试图做到这一点,如果没有指定 – 主题标志,它会停止吞咽任务,并想知道以干的方式做的最好方法。
如果没有指定 – 主题,我希望每个单独的任务都停止,并且如果不满足默认任务,也要停止。
到目前为止,我已经尝试了一些没有运气的东西。
谢谢,
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']);
您可以简单地停止脚本:
process.exit()
我认为最简单的方法是创build一个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']);
某种asynchronous函数可能会帮助你。 也许这样:
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 }) });