Gulp将文件附加到其中一个流源

时间:2014-11-12 19:07:42

标签: javascript gulp

采取以下gulp任务:

gulp.task('css', function(cb) {
    gulp
        .src( 'assets/css/{main,compat}.styl' )
        .pipe(styl())
        .pipe(base64({
            baseDir: 'icons/',
        }))
        .pipe(autoprefixer({
            browsers: ['Safari >= 8']
        }))
        .pipe(gulp.dest( 'assets/css/' ))
        .pipe(csso())
        //.pipe(gzip())
        .pipe(rename({
            suffix: '.min'
        }))
        .pipe(gulp.dest( 'assets/css/' ))
        .on('end', function() {
            cb()
        })
});

假设我要追加' /assets/css/custom.css'的内容。在.pipe(csso())之前的 main.css only 的内容,然后继续正常(使用main.css和compat.css)。

这是一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

为了只有一个流程,一种方法是需要gulp-filter,然后执行以下操作:

gulp.task('css', function() {
    var stylusOnly = filter(['**/*.styl']);
    var notCompact = filter(['*', '!assets/css/compat.css']);

    return gulp
        .src( ['assets/css/{main,compat}.styl', '/assets/css/custom.css'] )
        .pipe(stylusOnly)
        .pipe(styl())
        .pipe(base64({
            baseDir: 'icons/',
        }))
        .pipe(autoprefixer({
            browsers: ['Safari >= 8']
        }))
        .pipe(gulp.dest( 'assets/css/' ))
        .pipe(stylusOnly.restore())
        .pipe(notCompact)
        .pipe(concat('main.css'))
        .pipe(notCompact.restore())
        .pipe(csso())
        //.pipe(gzip())
        .pipe(rename({
            suffix: '.min'
        }))
        .pipe(gulp.dest( 'assets/css/' ));
});