Есть ли плагин минификации css для gulp, с конкатенацией файлов?

Привет, перехожу с grunt на gulp, столкнулся с некоторыми вопросами:
1) В grunt css-min можно было передать массив со стилями, и он минифицировал и заодно конкатенировал все в один файл styles.min.css. Для gulp я делаю так:

// styles
gulp.task('styles', function() {
return gulp.src(paths.styles)
.pipe(sass({ compass: true, style: 'expanded', sourcemap: true }))
.pipe(prefix('last 3 version', 'ie 8', 'ie 9', 'Opera 12.1'))
.pipe(gulp.dest('css/'))
.pipe(rename({ suffix: '.min' }))
.pipe(compressor())
.pipe(gulp.dest('css/'));
});
Получается все операции делаются с скомпилированными scss файлами, можно ли как то добавить в эту задачу другие стили, например из bower_components? или нужен отдельный таск? Ну и еще проблема, чтобы добавить суффикс .min пришлось ставить плагин rename, но он еще и дублирует файл map с тем же суффиксом, но это не нужно. Может есть способ проще решить эту задачу?
2) При добавлении return в колбэк задачи время выполнения гораздо больше чем без него, но больше похоже на правду, видел примеры с ним и без, что это значит?
  • Вопрос задан
  • 3087 просмотров
Пригласить эксперта
Ответы на вопрос 1
gillbeits
@gillbeits
gulp.task('sass', function () {
	return gulp.src(paths.styles)
		.pipe(sass({ compass: true, style: 'expanded', sourcemap: true }))
		.pipe(prefix('last 3 version', 'ie 8', 'ie 9', 'Opera 12.1'))
		.pipe(gulp.dest('css/'));
});
gulp.task('css', ['sass'], function () {
	return gulp.src(["/css", "!/css/*.min.css", "!/css/styles.css", "/external/**/*.css"])
		.pipe(concat('styles.css'))
		.pipe(gulp.dest('css/'))
		.pipe(rename({ suffix: 'min'}))
		.pipe(minCSS())
		.pipe(gulp.dest('css/'));
});
gulp.task('default', ['css'], function () {
	gulp.watch(paths.styles, ['css']);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы