AntonEssential
@AntonEssential

Как пересобирать именно тот фаил в котором были изменения?

Добрый день.
Вероятно кто-то знает, как компилировать только тот фаил в котором произошли изменения, например в каталоге лежит 20 файлов с расширением pug, стоит watcher который смотрит за изменением в каталоге, при изменении одного файла происходит перекомпиляция всех, помоему это ерунда какая-то, когда файлов становится много начинается адская боль, можно ли следить за файлом(не важно за каким) и если он изменился компилировать именно его с его инклюдами а не все 20.
Для сборки использую gulp

// Pug task
    gulp.task('pug', function buildHTML(cb) {
      return gulp.src('pug/*.pug')
      .pipe(pug())
      .pipe(gulp.dest('./dist/'));
    });

    // Watch task
    gulp.task('watch',function(){
      global.isWatching = true;

      // Modules pug
      watch('pug/*.pug', function() {
        return runSequence('pug', browserSync.reload);
      });
    });
  • Вопрос задан
  • 342 просмотра
Решения вопроса 2
werty1001
@werty1001
undefined
В галпе 4 версии из коробки можно сделать так:
gulp.task( 'pug', function () {
  return gulp.src( 'pug/*.pug', { since: gulp.lastRun( 'pug' ) } )
  .pipe( pug() )
  .pipe( gulp.dest( './dist/' ) );
});

Также есть gulp-newer.
Ответ написан
@Haoss
html-верстальщик
у меня так

gulp.task('jade', function() {
  gulp.src('./_jade/**/*.jade')
    .pipe(changed('./dist/', {extension: '.html'}))
    .pipe(gulpif(global.isWatching, cached('jade')))
    .pipe(jadeInheritance({basedir: './_jade/'}))
    .pipe(filter(function (file) {
      return !/\/_/.test(file.path) && !/^_/.test(file.relative);
    }))
    .pipe(plumber())
    .pipe(jade({
      pretty: '    '
    }))
    .pipe(gulp.dest('./dist/'))
    .pipe(browserSync.reload({stream:true}));
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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