Gulp任务复制目录中的所有文件,编译所有SCSS文件,保持其他文件没有变化?

时间:2016-11-12 09:09:01

标签: javascript css sass gulp

我在scss目录中有一堆文件:

scss/
  file.scss
  anotherfile.scss
  image.jpeg
  dir/
    other.ttf

我希望gulp将其编译为:

css/
  file.css
  anotherfile.css
  image.jpeg
  dir/
    other.ttf

目前它会编译所有.css个文件,但它不会复制任何其他文件。

这就是我现在所拥有的;

const path2 = require('path');
...
gulp.task('sass', function() {
  gulp.src("./scss/*.scss")
    .pipe(sass({outputStyle: 'compressed'}))
    .on('error', onError)
    .pipe(rename (function (path) {
      path.dirname = path.dirname.replace(path2.sep + "scss", path2.sep + "css");
      path.extname = ".css";
    }))
    .pipe(gulp.dest('./'));
});

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

gulp.task('sass', function() {
  gulp.src("scss/*.scss")
    .pipe(sass({outputStyle: 'compressed'}))
    .on('error', onError)
    .pipe(gulp.dest('css/'));
  // copy everything except *.scss & *.sass
  gulp.src([
    "scss/**/*",
    "!scss/**/*.{sass,scss}"
    ])
    .pipe(gulp.dest('css/'));
});