Sass 如何在GulpJS中覆盖输出文件?

Sass 如何在GulpJS中覆盖输出文件?,sass,gulp,less,overwrite,preprocessor,Sass,Gulp,Less,Overwrite,Preprocessor,我使用GulpJS将更少的SASS文件编译成一个CSS文件。我成功地将这些文件合并为一个文件,但是,当我编辑任何LESS/SASS文件并再次编译时,它没有覆盖style.css,而是不断地复制旧的元素。如果less/sass上有更新,是否有方法覆盖输出文件 以下是我在gulp.js中的代码: var gulp=require('gulp'); var sass=需要('gulp-sass'); var less=需要('gulp-less'); var concat=需要(“咕噜咕噜咕噜”);

我使用GulpJS将更少的SASS文件编译成一个CSS文件。我成功地将这些文件合并为一个文件,但是,当我编辑任何LESS/SASS文件并再次编译时,它没有覆盖style.css,而是不断地复制旧的元素。如果less/sass上有更新,是否有方法覆盖输出文件

以下是我在gulp.js中的代码:

var gulp=require('gulp');
var sass=需要('gulp-sass');
var less=需要('gulp-less');
var concat=需要(“咕噜咕噜咕噜”);
var merge=require('merge-stream');
var bower=需要(“bower”);
吞咽任务('default',函数(){
var lessStream=gulp.src('./src/style.less')
.管道(小于()
.pipe(concat('style.less'));
var scssStream=gulp.src('./src/style.sass')
.pipe(sass())
.pipe(concat('style.sass'));
var cssStream=gulp.src('assets/dist/style.css'{
基数:'./'
})
.pipe(concat('style.css'));
var mergedStream=merge(lessStream、scssStream、csssstream)
.pipe(concat('style.css'))
.pipe(大口目的地(“资产/地区”);
返回合并流;
大口大口地开始('bower');
});
吞咽任务('bower',()=>{
return gulp.src('assets/dist/style.css')
.pipe(wiredep())
.pipe(大口目的地(“资产/地区”);

})
我认为问题出在这一部分

var cssStream = gulp.src('assets/dist/style.css', {
        base: './'
    })
    .pipe(concat('style.css'));

var mergedStream = merge(lessStream, scssStream, cssStream)
    .pipe(concat('style.css'))
    .pipe(gulp.dest('assets/dist/'));
您正在获取现有的assets/dist/style.css,将其与所有其他文件连接起来,然后将其保存在assets/dist/style.css中。因此,下次运行该过程时,您将获取style.css(以及它已经拥有的所有内容),并将其与其他文件连接起来


如果style.css只有less和sass文件的输出,我就不会抓取它

什么版本的大口喝少?看起来这是4.0版的已知错误嗨,我使用的是gulp less的4.0版,但是看起来CSS反射没有问题,它生成得很好。我只是不知道用哪种方式覆盖输出文件…你能试试3.5版本吗?我怀疑你的问题是你把
concat
放在了所有地方(例如,你似乎没有创建一个新的“style.css”,而是将新的css结果连接到已经存在的“style.css”)。也就是说,再次查看您的脚本,并确定是否每个
concat
都有意义。