Ros*_*oss 8 javascript node.js gulp
我试图这样做,如果没有指定--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']);
Run Code Online (Sandbox Code Playgroud)
我认为最简单的方法是创建一个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']);
Run Code Online (Sandbox Code Playgroud)
某种异步函数可能会在这里帮助你。也许是这样的:
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
})
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9305 次 |
| 最近记录: |