gulp.series() 没有 运行 任务

gulp.series() doesn't run tasks

我不明白为什么 gulp.series() 没有在我的回调函数中触发。

我正在尝试使用 gulp-prompt 从用户输入中获取字符串并使用 gulp.series() 调用构建和部署函数。我在 gulp.series() 中的任务根本没有触发。

gulp.task('test', function(){
  const prompt = require('gulp-prompt');
  return gulp.src('test.js')
    .pipe(prompt.prompt({
        type: 'checkbox',
        name: 'env',
        message: 'which environment do you want to deploy to?',
        choices: ['qa','prod']
    },function(res){
      //console.dir(res.env);
        var env = res.env;
        console.log(env);
        console.log('hi');
        gulp.series('clean', 'patternlab:build', 'tag-version', deployWeb.bind(this, env), function(done){
          done();
        });
    }));
});

调用 gulp.series('task1', 'task2') 而不是 运行 task1task2。它所做的只是 return 一个新功能。只有调用 that 函数后,任务才会真正执行。

这意味着您需要执行以下操作:

var runTasks = gulp.series('clean', 'patternlab:build',
                           'tag-version', deployWeb.bind(this, env));
runTasks();

您代码中的整个 function(done){ done(); } 部分没有多大意义,gulp.series() 不需要。

Sven Schoenung回答正确

如果您不想添加新变量,只需将其设为 self-calling JS 函数即可,

gulp.series('clean', 'patternlab:build', 'tag-version', deployWeb.bind(this, env))();