每当gulp.js文件发生变化时,如何让Gulp自动重新加载?

时间:2014-08-10 20:27:23

标签: gulp

当我调整我的gulp.js文件以自动执行新的构建任务时,我必须保存文件,切换到shell窗口我正在运行gulp,杀死它,然后重新启动它。 / p>

能够自动执行此操作会很好,这样就可以自动选择并运行gulp文件中的更改。

是否有工具选项可以执行此操作?

1 个答案:

答案 0 :(得分:1)

如果您只想在更改gulpfile.js时重新启动正在运行的任务,您可以创建一个在子进程中运行gulp的任务:

var child = require('child_process');
var gutil = require('gulp-util');

gulp.task('run', function(done) {
  var proc;

  function restart() {
    if (proc) {
      proc.removeListener('exit', done);
      proc.kill();
      proc = null;
    }

    proc = child.exec('gulp ' + gutil.env['run-tasks']);
    proc.addListener('exit', done);
    proc.stdout.pipe(process.stdout);
  }

  gulp.watch('gulpfile.js', function(evnt) {
    restart();
  }); 

  restart();
});

gulp.task('build', ...);
gulp.task('serve', ...);

您可以调用它:gulp run --run-tasks "build serve"