letehaha
@letehaha
Вникаю вo front-end

От чего так долго запускается сборщик gulp?

Есть вот такая сборка:

var gulp 		= require('gulp'),
    browserSync = require('browser-sync'),
    sass 		= require('gulp-sass'),
    cssnano     = require('gulp-cssnano'),
    del         = require('del'),
    autoprefixer= require('gulp-autoprefixer'),
    htmlmin     = require('gulp-htmlmin'),
    ignore      = require('gulp-ignore'),
    imagemin 	= require('gulp-imagemin'),
    spritesmith = require('gulp.spritesmith'),
    jade        = require('gulp-jade');

gulp.task('sass', function(){
	return gulp.src('app/scss/main.scss')
		.pipe(sass())
		.pipe(autoprefixer())
		.pipe(gulp.dest('app/css'))
		.pipe(browserSync.reload({stream: true}))
});

gulp.task('jadeh', function() {
  gulp.src('./app/jade/index.jade')
    .pipe(jade())
    .pipe(gulp.dest('./app'))
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('browser-sync', function(){
	browserSync({
		server: {
			baseDir : 'app'
		},
		notify: false
	})
});

gulp.task('sprite', function () {
  var spriteData = gulp.src('app/img/icons/*.png').pipe(spritesmith({
    imgName: 'sprite.png',
    cssName: 'sprite.scss'
  }));
  return spriteData.pipe(gulp.dest('app/sprites/'));
});

gulp.task('watch', ['browser-sync'], function(){
	gulp.watch('app/*.html', browserSync.reload);
    gulp.watch('app/css/main.сss', browserSync.reload);
	gulp.watch('app/js/**/*.js', browserSync.reload);
});

gulp.task('clean', function() {
    return del.sync('dist'); // Delete folder dist before build
});

gulp.task('build', ["clean", "sass"], function() {

    var buildCss = gulp.src('app/css/**/*') // Dest css in production
    .pipe(cssnano())
    .pipe(gulp.dest('dist/css'))

    var buildImage = gulp.src('app/img/**/*') // Dest img in production
    .pipe(imagemin())
    .pipe(gulp.dest('dist/img'))

    var buildJs = gulp.src('app/js/**/*') // Dest js in production
    .pipe(gulp.dest('dist/js'))

    var buildHtml = gulp.src('app/*.html') // Dest HTML in production
    .pipe(htmlmin({collapseWhitespace: true}))
    .pipe(gulp.dest('dist'));

});


В итоге если я запускаю первый раз команду gulp watch (допустим за сутки), то запускается оно чуть ли не пару минут. Зато потом, начиная со второго раза, запускается за пару секунд. Можете объяснить почему так?
  • Вопрос задан
  • 1381 просмотр
Решения вопроса 2
SagePtr
@SagePtr
Еда - это святое
Плагины gulp в node_modules содержат огромное множество вложенных папок, содержащих много мелких файлов. Пока оно всё это хозяйство прочитает с диска - пройдёт много времени. А потом да, из дискового кэша.

Случайно взятый проект, использующий для сборки gulp:
4bc2bb6d49d846cda8f514c2c522ffe8.png
Ответ написан
litlleidiot
@litlleidiot
Фронт-Энд разработчик
Точно также как когда ты первый раз открываешь тяжелый сайт он открывается за 10 секунд к примеру а потом уже за 1 секунду. Кэш
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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