使用 gulp 将所有 scss 文件合并为一个 css 文件

Combine all scss file to one css file using gulp

我有这个 gulpfile.js 文件。

这里可以看到每一个.scss文件都转换成了对应的.css 文件,但我希望将所有 .scss 文件转换为仅一个 .css 文件main.css。我该怎么做?

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();

gulp.task('sass', function() {
    return gulp.src('app/scss/**/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('app/css'))
        .pipe(browserSync.reload({
            stream: true
        }))
});

gulp.task('browserSync', function(done) {
    browserSync.init({
        server: {
            baseDir: 'app'
        },
    });
    done();
})

gulp.task('watch', gulp.series('browserSync', 'sass', function() {
    gulp.watch('app/scss/**/*.scss', gulp.series('sass'));
    gulp.watch("app/*.html", { events: 'all' }, function(cb) {
        browserSync.reload();
        cb();
    });
    gulp.watch('app/js/**/*.js', browserSync.reload);
}));

您是否尝试过在目标中的管道之前放入一个 concat?您需要导入找到的 concat 函数 here。以下应合并您的文件。

gulp.task('sass', function() {
    return gulp.src('app/scss/**/*.scss')
        .pipe(sass())
        // concat will combine all files declared in your "src"
        .pipe(concat('all.scss'))
        .pipe(gulp.dest('app/css'))
        .pipe(browserSync.reload({
            stream: true
        }))
    });