首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并生成的sass事件流的任务,因为所需的顺序不起作用。

合并生成的sass事件流的任务,因为所需的顺序不起作用。
EN

Stack Overflow用户
提问于 2015-05-30 00:06:41
回答 1查看 230关注 0票数 0

我有三个引导sass和另外两个sass文件,我正在编译并合并到一个css中。在引导程序上,我运行"uncss“来摆脱未使用的css,但是对于其他人,我并不像我不希望的那样运行"uncss”。要合并这些,我使用的是“事件流”。不幸的是,生成的组合css文件的顺序不符合我的要求。无论如何,引导css文件总是打印在最后,这是造成问题。以下是我的任务

代码语言:javascript
复制
var eventStream = require('event-stream'),
        sass = require('gulp-sass'),
        uncss = require('gulp-uncss'),
        csso = require('gulp-csso'),
        concat = require('gulp-concat');

gulp.task('sass', function () {
    //Copy bootstrap fonts files
    gulp.src(config.sassPath + '/vendor/bootstrap-sass-3.3.2/assets/fonts/**/*')
            .pipe(gulp.dest(config.cssPath + '/fonts'));


    //compile bootstrap css, compress and remove unused css rules
    var bootstrapCss = gulp.src(config.sassPath + '/vendor/custom/custom-bootstrap.scss')
            .pipe(sass({outputStyle: 'compressed'}))
            .pipe(uncss({
                html: ['./application/public/templates/**/*.html']
            }))
            .pipe(csso());

    //Compile slick css file to compress it
    var slickCss = gulp.src(config.sassPath + '/vendor/slick/slick.scss')
            .pipe(sass({outputStyle: 'compressed'}));

    //Compile mysite css file and compress it
    var mysiteCss = gulp.src(config.sassPath + '/application/my-site.scss')
            .pipe(sass({outputStyle: 'compressed'}));

    //merge all css
    eventStream.merge(slickCss, mysiteCss, bootstrapCss)
            .pipe(concat('my-final-site.css'))
            .pipe(gulp.dest(config.cssPath + '/stylesheets'));

});

在最后生成的“我的最终站点”css中,css按以下顺序打印

代码语言:javascript
复制
1. slick
2. my-site
3. bootstrap 

我想保持引导在顶部,以便我的自定义引导代码甘蔗工作。

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-23 05:27:22

您可以这样编写自定义比较器。

代码语言:javascript
复制
// sort with a custom comparator 
gulp.src('./src/js/**/*.js')
.pipe(sort({
    comparator: function(file1, file2) {
        if (file1.path.indexOf('build') > -1) {
            return 1;
        }
        if (file2.path.indexOf('build') > -1) {
            return -1;
        }
        return 0;
    }
}))
.pipe(gulp.dest('./build/js'));

了解更多关于it的信息,这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30540814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档