在gulp.watch()运行时如何监听终端输入?

时间:2016-12-14 21:39:05

标签: gulp

在Gulp中,我可以让监视进程等待文件更改,但我也希望能够监听进行终端输入。例如,gulp-nodemon服务器可以监听在终端中输入“rs”并重启服务器。

作为一个例子,我希望能够创建一个监听器,它将监听“rb”以运行将重建整个包的任务(因为文件更改将启动更具体的任务)。

gulp-nodemon已经证明它可以完成,我想知道是否有人知道一个独立或可配置的包或方法。

1 个答案:

答案 0 :(得分:1)

您需要的只是node {s}自带的readline模块。它让你听取来自process.stdin的传入数据。

这是一个监听rb(后跟 Enter )然后执行rebuild任务的简单示例:

var gulp = require('gulp');
var readline = require('readline');

gulp.task('scripts', function() {
  //...
});

gulp.task('rebuild', function() {
  //...
});

gulp.task('watch', function() {
  gulp.watch('src/**/*.js', ['scripts']);

  var rl = readline.createInterface({input:process.stdin});
  rl.on('line', function(line) {
    if (line === 'rb') {
      gulp.start('rebuild');
    }
  });
});