gulp.series()不运行任务

jmd*_*r81 3 javascript node.js gulp gulp-4

我不知道为什么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();
        });
    }));
});
Run Code Online (Sandbox Code Playgroud)

Sve*_*ung 9

调用gulp.series('task1', 'task2')没有运行task1task2。它所做的只是返回一个新函数。仅在调用函数后,任务才实际执行。

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

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

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

  • 不幸的是 gulp 文档没有解释这一点。谢谢你的解释。 (2认同)