2

也许我是个白痴,但我无法让 gulp-watch 和 gulp-ruby-sass 的组合工作。任何建议都非常受欢迎。对于以下所有内容,我的 gulpfile.js 中的 require() 调用如下所示:

var gulp = require('gulp');
var watch = require('gulp-watch');
var plumber = require('gulp-plumber');
var sass = require('gulp-ruby-sass');

下一点是我无法工作的地方。当我更改文件时,我看到 gulp-watch 的输出表明文件已更改,但 gulp-ruby-sass 没有输出,并且文件未写入 dist/ 目录。

gulp.task('test-watch', function() {
    return watch('./**/*.scss')
        .pipe(plumber())
        .pipe(sass())
        .pipe(gulp.dest('dist/'));
});

但是我知道 gulp-watch 和 gulp-ruby-sass 都单独正确设置,因为它们自己工作正常:

// writes updated files to dist/ successfully
gulp.task('test-watch', function() {
    return watch('./**/*.scss')
        .pipe(plumber())
        .pipe(gulp.dest('dist/'));
});

// compiles into css and writes to dist/ directory successfully
gulp.src('./**/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('dist/'));

那我的问题是什么?更让人头疼的是,上面这个不起作用的例子实际上来自 gulp-watch 自述文件,所以应该是支持的。非常欢迎任何建议!

4

1 回答 1

1

似乎“解决方案”是为此使用 gulp-sass 而不是 gulp-ruby-sass。

我仍然不知道为什么 gulp-ruby-sass 不支持这一点,因为将 gulp.src() 的结果传入和传出 gulp-ruby-sass 就像一个冠军一样,但事实并非如此。我想知道 gulp-watch 是否返回与 gulp.src 不同的文件格式,gulp-ruby-sass 无法处理但 gulp-sass 可以。

如果有人知道如何使 gulp-ruby-sass 工作,因为它应该功能更齐全,请分享。

于 2015-01-14T18:00:30.177 回答