我有三个引导sass和另外两个sass文件,我正在编译并合并到一个css中。在引导程序上,我运行"uncss“来摆脱未使用的css,但是对于其他人,我并不像我不希望的那样运行"uncss”。要合并这些,我使用的是“事件流”。不幸的是,生成的组合css文件的顺序不符合我的要求。无论如何,引导css文件总是打印在最后,这是造成问题。以下是我的任务
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按以下顺序打印
1. slick
2. my-site
3. bootstrap 我想保持引导在顶部,以便我的自定义引导代码甘蔗工作。
请帮帮忙。
发布于 2015-07-23 05:27:22
您可以这样编写自定义比较器。
// 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的信息,这里
https://stackoverflow.com/questions/30540814
复制相似问题