dajnz
@dajnz
Frontend и backend web-разработчик

Почему Less отрабатывает медленно?

Здравствуйте,
пытаюсь приобщиться к автоматизации сборки фронтенда на базе Gulp, Browser sync и т.п. И пока пилил свою систему сборки и использовал для тестовых задач, все было хорошо. Но вот возник некоторый проект, нужно было сверстать порядка 15 страниц, здесь я использовал Less препроцессор а так же Less-файлы от бутстрапа.

По-началу все работало довольно шустро, но в какой-то момент стала чувствовать сильная задержка после момента сохранения изменений в Less-файле и до обновления состояния браузера Browser sync-ом. В итоге приходится ждать порядка 10 секунд, что крайне не удобно. Нормально ли это для Less на таком объеме?

Выходные CSS файлы в районе 260 Кб получаются, это не сжатые. В данном случае source-maps тоже не задействованы. Проблема именно в Less, что было установлено путем отключения последнего и проверки скорости обработки очередного изменения в файле стилей.

вот пример задачи по сборке стилей из Gulp:

gulp.src(allStyles)   
        .pipe(gulpif(buildOpts.devbuild && buildOpts.compress, sourcemaps.init()))
        .pipe(gulpif(buildOpts.styletype === 'less', less()))
        .on('error', handleError('LESS PREPROCESSING'))
        .pipe(gulpif(buildOpts.styletype === 'scss', sass(buildOpts.sassOpts)))
        .on('error', handleError('SCSS PREPROCESSING'))
        .pipe(prefixer(buildOpts.autoprefixerOpts))
        .on('error', handleError('CSS PREFIXER'))
        .pipe(gulpif(!buildOpts.devbuild || buildOpts.compress, cssmin()))
        .pipe(gulpif(buildOpts.devbuild && buildOpts.compress, sourcemaps.write()))
        .pipe(gulp.dest(destDir))
        .on('end', function() { 
            browserSync.reload();
            someDeferred.resolve(); 
        });
  • Вопрос задан
  • 262 просмотра
Решения вопроса 1
dajnz
@dajnz Автор вопроса
Frontend и backend web-разработчик
Все-таки проблема заключалась не в Less, а во мне, а вернее в том, что я обрабатывал скопом все Less-файлы, вместо того, чтобы делать это только для изменившихся.
Для решения проблемы были использованы Gulp-плагины gulp-cached и gulp-remember, как применять можно глянуть тут или в репозиториях самих плагинов на гитхабе.
Скорость обработки стилей теперь в районе 170-200 мс, что более чем удовлетворительно.
Что касается libsass, то да, это я тоже попробую, но в другом проекте, спасибо за совет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы