Gulp:将文件连接到每个单独的sass进程

时间:2017-10-30 15:35:35

标签: gulp gulp-sass gulp-concat

我写了一个gulp任务,将一个文件夹中的所有scss个文件处理成单独的css个文件。

gulp.task('process', function () {
  gulp.src(['./base.scss', './layout/*.scss'])
    .pipe(sass())
    .pipe(gulp.dest('dist'))
});

现在我想将一个文件(base.scss)连接到每个scss进程;我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

这对你有帮助,但我没有测试过。 Gulp-foreach对你有好处,它会将gulp.src中的每个文件视为自己的流,你可以单独操作它。然后下面的代码将你的base.scss附加到每个流,然后连接它们然后它们通过sass管道。

var foreach = require('gulp-foreach');
var concat = require('gulp-concat');
var addsrc = require('gulp-add-src');

gulp.task('default', function () {
  return gulp.src('./layout/*.scss')
      // treats each file in gulp.src as a separate stream
    .pipe(foreach(function (stream, file) {
      return stream
         // append or prepend
       .pipe(addsrc.append('./base.scss'))
        //  you do have access to the 'file' parameter here if you need to rename
       .pipe(sass())
       .pipe(concat(path.basename(file.path)))
       .pipe(gulp.dest('dist'));
    }));
});

让我知道它是否适合你。