1

我正在尝试将我的 sass 以及其他一些东西转换为 css。如果出现错误,我将无法处理 sass 转换。我可以让它告诉我,但它会挂起,我必须重新启动 gulp。我在这里和那里想念打字,我虔诚地按 ctrl+s,所以当我做的每一个其他错字都崩溃时,这真的很烦人。这是我所拥有的:

gulp.task('default', function () {
    var sassSrc = './src/scss/*.scss',
        sassDst = './build/css',
        htmlSrc = './src/*.html',
        htmlDst = './build';

gulp.src(sassSrc, {unpipeOnError: false})
    .pipe(watch(function(files) {
        return files.pipe(plumber())
            .pipe(sass())
            .on("error", notify.onError())
            .pipe(prefix("last 3 version", "> 1%", 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', "Android 4"))
            .pipe(minifyCSS())
            .pipe(gulp.dest(sassDst))
            .pipe(notify({ message: 'Styles task complete' }));
    }));

    gulp.src(htmlSrc)
    .pipe(watch(function(files) {
        return files.pipe(minifyHTML())
            .pipe(gulp.dest(htmlDst));
    }));
});
4

1 回答 1

2

尝试使用 Node.js 中的EventEmitter类。而不是直接传递notify.onError(),也发出end事件。将相关代码更改为以下块:

.on('error', function() {
    notify.onError().apply(this, arguments);
    this.emit('end');
})

并且gulp-watch应该继续响应更改,即使出现错误。希望这可以帮助!

于 2014-07-16T19:56:24.877 回答