如何能在每一gulpfile吞重新开始改变?

jfmercercoool提出了一个问题:How can Gulp be restarted upon each Gulpfile change?,或许与您遇到的问题类似。

回答者Caio Cunha给出了该问题的处理方式:

You can create a taskthat will gulp.watchfor gulpfile.jsand simply spawnanother 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'});
  }
});

I used yargsin order to accept the 'main task' to run once we need to restart. So in order to run this, you would call:

gulp auto-reload --task watching-task

And to test, call either touch gulpfile.jsor touch a.cssto see the logs.

希望本文对你有帮助,欢迎支持JavaScript中文网

原文链接:stackoverflow.com

上一篇:正确使用常量定义JavaScript中的函数
下一篇:如何获取元素的文本节点?

相关推荐

  • 重新记录重新记录

    标准盒子模型:宽度=内容的宽度(content) border padding margin 低版本IE盒子模型:宽度=内容宽度(contentborderpadding) margin box...

    1 年前
  • 重新认识vue之事件阻止冒泡

    冒泡的表现 近期用vue做了一个需求,大概是同一个区域,点击不同位置有不同的响应函数,还有个总的响应函数,好吧,如下图所示: (https://img.javascriptcn.com/4ff5...

    2 年前
  • 重新认识vue之 混入 (mixins)模式

    1. 专栏(/blogs) 2. x贝贝(/blog/xiaoyan) 3. 文章详情 侯贝贝(https://img.javascriptcn.com/bb1b7...

    1 年前
  • 重新认识vue之 ref

    ref ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。此时对 ref 的认识在于,元素属性写了 refs, 则可以通过 this.$refs 访问到该元...

    2 年前
  • 重新认识prettier及如何工程化

    1qdyIUswy9X5SxSR2tzrIJw.png(https://img.javascriptcn.com/93f429f947421085617d8d16a2017b3e "1qdyIUswy...

    7 个月前
  • 重新认识const 和 let

    es6中提供2个声明变量的关键字const 和 let首先,这2个都是块级作用域,在此之前JavaScript是没有块级作用域的概念的。并且在他们的变量声明之前访问都是不允许的。

    4 天前
  • 重新认识caniuse

    困惑 相信大家都是曾用caniuse网站查询过css、js的一些兼容性问题,并且都从它的浏览器兼容性数据中获益,让我们的线上项目更加稳定、和谐的跑在用户电脑里。

    1 年前
  • 重新认识 package.json

    前言 🤔 在每个项目的根目录下面,一般都会有一个 package.json 文件,其定义了运行项目所需要的各种依赖和项目的配置信息(如名称、版本、许可证等元数据)。

    1 个月前
  • 重新认识 package.json

    前言 🤔 在每个项目的根目录下面,一般都会有一个 package.json 文件,其定义了运行项目所需要的各种依赖和项目的配置信息(如名称、版本、许可证等元数据)。

    1 个月前
  • 重新认识 package.json

    前言 🤔 在每个项目的根目录下面,一般都会有一个 package.json 文件,其定义了运行项目所需要的各种依赖和项目的配置信息(如名称、版本、许可证等元数据)。

    2 个月前

官方社区

扫码加入 JavaScript 社区