Задать вопрос

Очередная проблема с асинхронностью gulp. Как решить?

Проблему вы можете увидеть на скриншоте
44a77f8103524846bab6203b65a906ef.png
Т.е. run-sequence работает, но т.к. в таске минификации более 1 файла, то конкатенация происходит до того, как выполнится минификация всех файлов.
Зависимости:
var gulp = require('gulp'),
    autoprefixer = require('gulp-autoprefixer'),
    cssnano = require('gulp-cssnano'),
    uglify = require('gulp-uglify'),
    rename = require('gulp-rename'),
    concat = require('gulp-concat'),
    notify = require('gulp-notify'),
    watch = require('gulp-watch'),
    seq = require('run-sequence');

Сами таски:
gulp.task('admin-css-min', function () {
    return gulp.src('assets/css/admin/*')
        .pipe(autoprefixer('last 2 version'))
        .pipe(cssnano())
        .pipe(gulp.dest('assets/dist/css/admin'))
        .pipe(notify('a-css-min : complete'));
});
gulp.task('admin-css', function () {
    return gulp.src('assets/dist/css/admin/*')
        .pipe(concat('admin.min.css'))
        .pipe(gulp.dest('web/dist/css'))
        .pipe(notify('admin-css : complete'));
});
gulp.task('build-a-css', function () {
    return seq(['admin-css-min', 'admin-css']);
});

Так же стоит вопрос оптимизации. Т.е. тут либо кеширование, либо с помощью gulp-watch делать минификацию только тех файлов, которые изменились. Как это реализуется?
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
pm_wanderer
@pm_wanderer
junior-HTML
В последнем таске оставить только минификацию. В таске минификации сделать зависимостью таск конкатенации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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