gulp手表结束得太快了

时间:2015-02-24 05:06:54

标签: javascript gulp gulp-watch

我遇到与this guy相同的问题。

我的终端看起来像:

$ gulp watch
[23:59:03] Using gulpfile gulpfile.js
[23:59:03] Starting 'watch'...
[23:59:03] Finished 'watch' after 8.68 ms

http://jsbin.com/poxoke/1/edit?js

为什么我无法观察文件更改?为什么这么快结束?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试添加gulp-util

var util= require('gulp-util');

然后在你的sass任务中添加一行来报告任何错误(如果是这个),以控制输出。

gulp.task('sass', function () {
  return gulp.src('assets/scss/*.scss')
    .pipe(sourcemaps.init())
    .pipe(sass({
        includePaths: ['sass'].concat(bourbon),
        outputStyle: 'compressed'
    }))
    .on('error', util.log)
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('assets/css'));
});

如果gulp-sass抛出错误,可能会消耗掉#34;通过管道但仍然导致整个流终止。因此,如果您添加该行以显式捕获它们然后将其注销,您可以查看是否确实如此。

您的观看任务取决于' sass'任务,如果失败,你的任务就结束了。

gulp.task('watch', function(){
    gulp.watch('assets/scss/*.scss', ['sass']);
});

我目前的规则是:

gulp.task('sass', function () {
  var src = path.join('src', 'scss', '*.scss');
  var dst = path.join('public', 'css');
  var config = {
    errLogToConsole: true,
    outputStyle: 'compressed',
    sourceComments: false
  };
  return gulp.src(src)
         .pipe(sourcemaps.init())
         .pipe(sass(config)).on('error', util.log)
         .pipe(concat('style.css')).on('error', util.log)
         .pipe(sourcemaps.write('.'))
         .pipe(gulp.dest(dst));
});

一切正常

我的输出是这样的: [05:49:27] Using gulpfile F:\Projects\Upload\gulpfile.js [05:49:27] Starting 'watch'... [05:49:29] Finished 'watch' after 1.98 s

但是Gulp没有返回命令行,光标仍然闪烁,当我更新SASS文件时,代码再次运行并且更新了CSS