首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在每次Gulpfile更改时重新启动Gulp?

如何在每次Gulpfile更改时重新启动Gulp?
EN

Stack Overflow用户
提问于 2014-04-06 04:54:42
回答 7查看 21.5K关注 0票数 66

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-04-06 23:56:44

您可以创建一个task,它将为gulpfile.js和简单的spawn another gulp child_process创建gulp.watch

代码语言:javascript
复制
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是为了让“主任务”在我们需要重启时运行。因此,为了运行这段代码,您需要调用:

代码语言:javascript
复制
gulp auto-reload --task watching-task

要进行测试,请调用touch gulpfile.jstouch a.css来查看日志。

票数 60
EN

Stack Overflow用户

发布于 2015-01-28 12:13:02

我创建了gulper,这是gulp.js cli包装器,用于在gulp文件更改时重新启动gulp。

你可以简单地用gulper代替gulp。

代码语言:javascript
复制
$ gulper <task-name>
票数 41
EN

Stack Overflow用户

发布于 2015-03-11 22:46:16

为此,我使用了一个小的shell脚本。这也适用于Windows。

Ctrl+C键停止脚本。

代码语言:javascript
复制
// gulpfile.js
gulp.task('watch', function() {
    gulp.watch('gulpfile.js', process.exit);
});

Bash shell脚本:

代码语言:javascript
复制
# watch.sh
while true; do
    gulp watch;
done;

Windows版本:watch.bat

代码语言:javascript
复制
@echo off
:label
cmd /c gulp watch
goto label
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22886682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档