【问题标题】:Stop Gulp Task if Conditions are met如果满足条件,则停止 Gulp 任务
【发布时间】:2015-02-12 18:36:04
【问题描述】:

我正在努力做到这一点,所以如果没有指定 --theme 标志,它会停止 gulp 任务并想知道以 DRY 方式完成它的最佳方法。

如果未指定 --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']);

【问题讨论】:

    标签: javascript node.js gulp


    【解决方案1】:

    您可以简单地停止脚本:

    process.exit()
    

    【讨论】:

      【解决方案2】:

      我认为最简单的方法是创建一个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']);
      

      【讨论】:

        【解决方案3】:

        某种异步功能可能会对您有所帮助。可能是这样的:

        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
          })
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-14
          • 2013-08-08
          • 2023-04-05
          • 1970-01-01
          相关资源
          最近更新 更多