Глотать меньше компилировать только измененный файл

У меня проблема, когда я запускаю gulp watch -> запускает стили задач:build, и все мои меньшие файлы были перекомпилированы. Как я могу скомпилировать только измененный файл?

gulp.task('styles:build', function () {
    return gulp.src(pathes.src.styles)
        .pipe(changed(pathes.build.styles), {extension: '.css'})
        .pipe(print(function(filepath) {
            return "➔ file was changed: " + filepath;
        }))
        .pipe(plumber())
        .pipe(less({
            plugins: [autoprefix, cleanCSSPlugin],
            paths: ['./', 'web/styles']
        }))
        .pipe(gulp.dest(pathes.build.styles))
});


gulp.task('watch', function() {
   gulp.watch(pathes.src.styles, ['styles:build'])
});

2 ответа

Вам нужно изменить строку ниже, чтобы добавить закрывающую скобку:

.pipe(changed(pathes.build.styles, {extension: '.css'}))

Также, как я и предупредил при первом запуске задачи, она, вероятно, пройдет через все файлы.

Я думаю, что я нашел решение, просто установите lessChanged = require('gulp-less-Changed') и включите его, прежде чем меньше трубы

.pipe(lessChanged())
.pipe(less())
Другие вопросы по тегам