vik_kodik
@vik_kodik
Разработчик интерфейсов.

Причина медленного выполнение gulp тасков?

Приветствую. Не подскажете, почему таски style и html тормозят(style - >30 секунд)? Может я что-то неправильно указываю или неправильно комбинирую плагины?
//=======================================================
//                    Style
//=======================================================

gulp.task('style', function () {
     return gulp.src(path.src.style)
        .pipe(plugins.newer(path.dist.css))
        .pipe(plugins.plumber())
        .pipe(plugins.sourcemaps.init())
        .pipe(plugins.sass.sync())
        .pipe(gulp.dest(path.src.css))
        .pipe(plugins.csso())
        .pipe(plugins.rename({suffix: '.min'}))
        .pipe(plugins.sourcemaps.write())
        .pipe(gulp.dest(path.dist.css))
        .pipe(reload({stream: true}));
});

//=======================================================
//                        HTML
//=======================================================

gulp.task('html', function () {
    return gulp.src(path.src.html)
        .pipe(plugins.newer(path.dist.html))
        .pipe(plugins.rigger())
        .pipe(plugins.removeHtmlComments())
        .pipe(plugins.replace(/^\s*\n/mg, ''))
        .pipe(gulp.dest(path.dist.html))
        .pipe(reload({stream: true}));
});
  • Вопрос задан
  • 655 просмотров
Решения вопроса 2
возможно, стоит попробовать sass() вместо sass.sync(), убрать промежуточный gulp.dest (правда, зачем?) и csso() на время разработки?
вообще, вылючайте плагины по очереди и увидите, какой из них тормозит сборку
Ответ написан
Комментировать
zorro76
@zorro76
Не вижу причины писать следующее к примеру так.pipe(plugins.rigger()), можно ведь так: .pipe(rigger()), возможно это не даст ускорения, но будет правильно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
Кроме прочего советую воспользоваться плагином gulp-load-plugins. Он реализует "ленивую" загрузку плагинов, в тот момент, когда они нужны. И разносить таски по разным файлам, чтобы на каждый таск приходилось минимальное значение require. Ведь когда интерпретатор видит require, он сразу же читает модуль и его подмодули и загружает в исполнение.

Если есть вопросы - подскажу, как это всё реализовать.
Ответ написан
Ваш ответ на вопрос

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

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