Gulp 日志吞咽sass写入文件

Gulp 日志吞咽sass写入文件,gulp,gulp-sass,Gulp,Gulp Sass,我使用Gulp编译带有插件的SASS代码。我想注销运行任务时写入(或覆盖)的文件,但它不显示发生了什么。只有当它完成时 const gulp = require('gulp'); const sass = require('gulp-sass'); gulp.task('sass', function () { return gulp.src(filesToCompile) .pipe(sass().on('error', sass.logError)) .pipe(gul

我使用Gulp编译带有插件的SASS代码。我想注销运行任务时写入(或覆盖)的文件,但它不显示发生了什么。只有当它完成时

const gulp = require('gulp');
const sass = require('gulp-sass');

gulp.task('sass', function () {
  return gulp.src(filesToCompile)
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest(folderToOutput));
});
我找到了插件来查看流中有哪些文件,但它似乎让我注销了所有SASS文件,而不是哪些文件被写入或覆盖

const gulp = require('gulp');
const sass = require('gulp-sass');
const tap = require('gulp-tap');

gulp.task('sass', function () {
  return gulp.src(filesToCompile)
    .pipe(sass().on('error', sass.logError))
    .pipe(tap(function (file, t) {
      console.log(file.path);
    }))
    .pipe(gulp.dest(folderToOutput));
});

有什么方法可以做到这一点吗?

我认为您可以使用插件和。我现在没有时间测试它,但我认为这段代码应该是:

var gulp = require('gulp');
var sass = require('gulp-sass');
var changed = require('gulp-changed');
var using = require('gulp-using');

gulp.task('sass', function () {
  return gulp.src(filesToCompile)
    .pipe(sass().on('error', sass.logError))
    .pipe(changed(folderToOutput))
    .pipe(using({color:'red'}))
    .pipe(gulp.dest(folderToOutput));
});
此处
gulp changed
过滤文件,以便您仅复制新的或修改的文件,并且
gulp using
记录过滤后通过流的所有文件


PD:您的第一段代码中有一个输入错误。

显然,gulp更改了过滤器,所有内容都是这样编译的。如果我删除gulp changed,而不使用gulp,它会注销所有编译的CSS文件。这是gulp changed和gulp sass包的问题吗?如果您不更改sass文件中的任何内容,就没有问题。您必须进行任何更改以查看它是否正常工作。