2014-08-14 6 views
3

Я только что открыл задачу gulp-prompt. Хотя это позволяет легко запрашивать пользователя по-разному, в примерах нет намека на то, как использовать вход пользователя. Например, я хотел бы предложить пользователю две настройки (например, CDN-локальные или локальные ресурсы) и выполнить мои задачи условно. Как вы можете это сделать в Gulp? Это может спасти меня от поиска генератора Йомена.Gulp подскажет, какие задачи выполнять?

ответ

5

Exemple

... 
... 
var inject = require('gulp-inject'); 
var cdnizer = require('gulp-cdnizer'); 
gulp.task('mytask', function(){ 
    var target = gulp.src('./src/index.html'); 
    return gulp.src('*') 
    .pipe(prompt.prompt({ 
     type: 'input', 
     name: 'type', 
     message: 'What you like to do? [cdn/assets]' 
    }, function(res){ 
     var sources; 
     if(res.type === 'cdn'){ 
      sources = ... 
      target.pipe(inject(sources)) 
      .pipe(gulp.dest('./src')); 
     }else{ 
      target.pipe(cdnizer({...}); 
     } 

    })); 
}); 
0

Это еще одна реализация. Он попросит вас выбрать задачу с помощью клавиатуры

gulp.task('default', function() { 
var taskNames = []; 
for (var taskName in gulp.tasks) { 
    if (gulp.tasks.hasOwnProperty(taskName)) { 
     taskNames.push(taskName); 
    } 
} 

return gulp.src('*').pipe(
    prompt.prompt({ 
     type: 'checkbox', 
     name: 'tasks', 
     message: 'Choose task name', 
     choices: taskNames 
    }, function(res){ 
     //value is in res.task (the name option gives the key) 
     console.log(res); 
     res.tasks.forEach(function(taskName){ 
      console.log(taskName); 
      gulp.tasks[taskName].fn(); 
     }); 
    })); 

});

Смежные вопросы