管道问题 gulp-watch into gulp-ruby-sass

issue with piping gulp-watch into gulp-ruby-sass

也许我是个白痴,但我无法让 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 自述文件,因此应该是受支持的。非常欢迎任何建议!

似乎 "solution" 是使用 gulp-sass 而不是 gulp-ruby-sass.

我仍然不知道为什么 gulp-ruby-sass 不支持这个,因为将 gulp.src() 的结果通过管道传输到 gulp-ruby-sass 像冠军一样工作,但事实并非如此。我想知道 gulp-watch returns 是否与 gulp.src 不同的文件格式 gulp-ruby-sass 无法处理但 gulp-sass可以.

如果有人知道如何为 gulp-ruby-sass 制作此功能,因为据说功能更全面,请分享。