咽表结束得太早了

gulp watch ends too soon

本文关键字:太早 结束      更新时间:2024-04-08

我遇到了和这家伙一样的问题。

我的终端看起来像:

$ 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

为什么我不能让它监视文件更改?为什么结局这么快?

谢谢!

您可以尝试添加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'));
});

如果gullow-sass抛出错误,这可能会被管道"消耗",但仍会导致整个流终止。因此,如果您添加行以显式捕获它们,然后将它们注销,您可以看到事实是否如此。

您的监视任务取决于"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 进行更新