Javascript Gulp sass将空的scss文件复制到目标文件夹

Javascript Gulp sass将空的scss文件复制到目标文件夹,javascript,css,sass,gulp,gulp-sass,Javascript,Css,Sass,Gulp,Gulp Sass,我有一个任务: gulp.task('compile_scss, function() { return gulp.src('/admin_app/scss/*.scss') .pipe(sass()) .pipe(dest('/admin_app/css/')) }); 当我将新的空“.scss”文件添加到“/admin_app/scss/”并从上面运行任务时,空“.scss”文件将复制到目标文件夹。如果文件不是空

我有一个任务:

   gulp.task('compile_scss, function() {
        return gulp.src('/admin_app/scss/*.scss')
            .pipe(sass())
            .pipe(dest('/admin_app/css/'))
    });
当我将新的空“.scss”文件添加到“/admin_app/scss/”并从上面运行任务时,空“.scss”文件将复制到目标文件夹。如果文件不是空的,则一切正常:编译有效的css文件(扩展名为“.css”),不复制“.scss”文件。问题是,当我将新的“.scss”文件添加到“/admin\u app/scss/”目录时,会触发一个“监视”任务,因为文件为空,所以会将其复制到目标目录。因此,dest文件夹中存在大量不必要的垃圾。为什么会发生这种情况,我怎样才能摆脱它

已更新

我的“监视”和“默认”任务:


解决这个问题的一种方法是简单地过滤空文件

试着这样做:

var filter = require('gulp-filter'),

gulp.task('compile_scss, function() {
    return gulp.src('/admin_app/scss/*.scss')
        .pipe(filter(function(a){ return a.stat && a.stat.size }))
        .pipe(sass())
        .pipe(dest('/admin_app/css/'))
});
var clip = require('gulp-clip-empty-files'),

gulp.task('compile_scss, function() {
    return gulp.src('/admin_app/scss/*.scss')
        .pipe(clip())
        .pipe(sass())
        .pipe(dest('/admin_app/css/'))
});
还有一个专门用于此目的的插件。您可以这样使用它:

var filter = require('gulp-filter'),

gulp.task('compile_scss, function() {
    return gulp.src('/admin_app/scss/*.scss')
        .pipe(filter(function(a){ return a.stat && a.stat.size }))
        .pipe(sass())
        .pipe(dest('/admin_app/css/'))
});
var clip = require('gulp-clip-empty-files'),

gulp.task('compile_scss, function() {
    return gulp.src('/admin_app/scss/*.scss')
        .pipe(clip())
        .pipe(sass())
        .pipe(dest('/admin_app/css/'))
});

此外:似乎有几份报告指出编译空文件时,
gulp sass
和底层库存在问题。有一个for
gulp sass
,报告这应该在插件的2.x版本中解决。如果您已经在运行2.x,您所面临的问题可能是解决原始问题所带来的问题。

如果您在sass文件夹中添加空的
scss
文件,请在其前面加下划线:
\u empty.scss

请参见此处的“部分内容”:

您可以创建包含CSS小片段的部分Sass文件 可以包含在其他Sass文件中的。这是一个很好的方法 模块化您的CSS并帮助使事情更易于维护。局部 只是一个以前导下划线命名的Sass文件。你可以说出你的名字 它有点像_partial.scss下划线让Sass知道 该文件只是部分文件,不应生成该文件 导入CSS文件。Sass partials与@import指令一起使用


您是否可以包括“监视”、“默认”和“删除”(如果适用)任务的代码?我在试着重现你的生活problem@lambo477我已经更新了我的问题。谢谢。是的,这是一个解决方案,谢谢。“但是我想弄清楚“大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大口大。我试过clip(),但没有帮到我。