我不明白为什么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();
});
}));
});
发布于 2016-10-06 10:03:01
调用gulp.series('task1', 'task2')
做而不是运行task1
和task2
。它所做的就是返回一个新函数。只有在调用之后,函数才是实际执行的任务。
这意味着在您的情况下,您需要执行以下操作:
var runTasks = gulp.series('clean', 'patternlab:build',
'tag-version', deployWeb.bind(this, env));
runTasks();
您在代码中包含的整个function(done){ done(); }
部分实际上没有多大意义,也不需要gulp.series()
。
发布于 2019-06-06 04:21:27
Sven Schoenung的回答是正确的。
如果您不想添加一个新变量,只需将其设置为一个自称为JS的函数,
gulp.series('clean', 'patternlab:build', 'tag-version', deployWeb.bind(this, env))();
https://stackoverflow.com/questions/39902010
复制