记录gulp sass写的文件

时间:2016-03-11 17:35:17

标签: gulp gulp-sass

我正在使用Gulp使用gulp-sass插件编译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));
});

我发现插件gulp-tap可以查看流中的文件,但它似乎会将所有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));
});

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用插件http://doc.qt.io/qt-4.8/application-windows.html#window-geometrygulp-changed来实现这一目标。我现在没时间测试它,但我认为这段代码将是:

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:您的第一个代码段中有拼写错误。