一尘不染

每次更改Gulpfile后,如何重新启动Gulp?

node.js

我正在开发一个Gulpfile。是否可以在更改后立即重启?我正在使用CoffeeScript开发它。保存更改后可以Gulp观看Gulpfile.coffee以便重新启动吗?


阅读 288

收藏
2020-07-07

共1个答案

一尘不染

您可以创建一个task这种意愿gulp.watchgulpfile.js,只是spawn另一个一饮而尽child_process

var gulp = require('gulp'),
    argv = require('yargs').argv, // for args parsing
    spawn = require('child_process').spawn;

gulp.task('log', function() {
  console.log('CSSs has been changed');
});

gulp.task('watching-task', function() {
  gulp.watch('*.css', ['log']);
});

gulp.task('auto-reload', function() {
  var p;

  gulp.watch('gulpfile.js', spawnChildren);
  spawnChildren();

  function spawnChildren(e) {
    // kill previous spawned process
    if(p) { p.kill(); }

    // `spawn` a child `gulp` process linked to the parent `stdio`
    p = spawn('gulp', [argv.task], {stdio: 'inherit'});
  }
});

我曾经yargs为了接受“主任务”而在需要重新启动时运行。因此,为了运行此程序,您可以调用:

gulp auto-reload --task watching-task

要进行测试,请致电touch gulpfile.jstouch a.css查看日志。

2020-07-07