NodeJs Gulp - 开始任务前确认
NodeJs Gulp - confirm before starting task
我有一个很重的gulp任务,我想问问用户是否真的想开始这个任务。
我已经看过 gulp-confirm and gulp-prompt 但它对我没有帮助:
我不想通过管道传送 'confirm' 我只是不想在用户确认之前开始繁重的任务。
我正在努力实现这样的目标:
gulp.task('confirm', [], function ()
{
//Ask the confirm question here and cancel all task if the user abort
prompt.confirm({
message: 'This task will create a new tag version\n. Are you sure you want to continue?',
default: true
});
});
gulp.task('Build Release QA', ['confirm'], function ()//use this task to make release to QA
{
//very heavy task, don't start it if user abort it from 'confirm' task
});
有什么想法吗?
不需要 Gulp 插件,实际上这两个包裹的包 -- inquirer
-- 做你需要的任何事情:
var inquirer = require('inquirer');
gulp.task('default', function(done) {
inquirer.prompt([{
type: 'confirm',
message: 'Do you really want to start?',
default: true,
name: 'start'
}], function(answers) {
if(answers.start) {
gulp.start('your-gulp-task');
}
done();
});
});
传递 done
回调并在 inquirer
的回调函数中调用它很重要,这样您的任务就不会提前结束。
这是 Gulp 中最好的事情之一:您可能不需要那些插件 ;-)
我有一个很重的gulp任务,我想问问用户是否真的想开始这个任务。
我已经看过 gulp-confirm and gulp-prompt 但它对我没有帮助:
我不想通过管道传送 'confirm' 我只是不想在用户确认之前开始繁重的任务。
我正在努力实现这样的目标:
gulp.task('confirm', [], function ()
{
//Ask the confirm question here and cancel all task if the user abort
prompt.confirm({
message: 'This task will create a new tag version\n. Are you sure you want to continue?',
default: true
});
});
gulp.task('Build Release QA', ['confirm'], function ()//use this task to make release to QA
{
//very heavy task, don't start it if user abort it from 'confirm' task
});
有什么想法吗?
不需要 Gulp 插件,实际上这两个包裹的包 -- inquirer
-- 做你需要的任何事情:
var inquirer = require('inquirer');
gulp.task('default', function(done) {
inquirer.prompt([{
type: 'confirm',
message: 'Do you really want to start?',
default: true,
name: 'start'
}], function(answers) {
if(answers.start) {
gulp.start('your-gulp-task');
}
done();
});
});
传递 done
回调并在 inquirer
的回调函数中调用它很重要,这样您的任务就不会提前结束。
这是 Gulp 中最好的事情之一:您可能不需要那些插件 ;-)