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

标签 javascript node.js workflow gulp gulp-watch

我正在开发一个 Gulpfile。可以让它一改变就重新启动吗?我正在使用 CoffeeScript 开发它。 Gulp 是否可以监视 Gulpfile.coffee 以便在保存更改时重新启动?

最佳答案

您可以创建一个 task,它将 gulp.watch 用于 gulpfile.js 并且只需 spawn another gulp 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 以查看日志。

关于javascript - 每次 Gulpfile 更改后如何重新启动 Gulp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22886682/

相关文章:

node.js - 如何使用其他列更新列?

node.js - 火力地堡云函数 : Querying Nodes

git - 使用 Gulp.js 将版本化和构建(缩小)的文件正确提交到 GitHub

javascript - 我在力矩和 Angular 过滤器方面遇到问题

javascript - 使用 TypeORM 迁移如何在迁移期间为列播种

javascript - 为什么我的 if 语句继续运行?

javascript - nodejs串口setCommState

workflow - Tridion 2011 SP1 - 出版物的默认工作流程仅适用于新页面

mercurial - 如何通过 mercurial 修复先前版本中的错误?

javascript - 将变量分配给 ajax responseText