Как настроить картинки так что бы при попадании в папку источника, копировались в папку паблик и сжимались только новые картинки? Сейчас при попадании любой картинки в папку источника заново копируются и сжимаются все картинки, что занимает больше 10 мин. Нужно сделать так что бы при каждом запуске gulp те картинки что уже были скажи и скопированы, заново не копировались, а во время работы если я добавлю картинки что бы только они и копировались.
Вот настройки gulp:
const gulp = require('gulp');
const concatCss = require('gulp-concat-css');
const rename = require('gulp-rename');
const minifyCss = require('gulp-minify-css');
const debug = require('gulp-debug');
const sourcemaps = require('gulp-sourcemaps');
const gulpIf = require('gulp-if');
const del = require('del');
const newer = require('gulp-newer');
const browserSync = require('browser-sync').create();
const imagemin = require('gulp-imagemin');
const pngquant = require('imagemin-pngquant');
const autoprefixer = require('gulp-autoprefixer');
const include = require('gulp-include');
const rigger = require('gulp-rigger');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const cache = require('gulp-cache');
const changed = require('gulp-changed');
gulp.task('html_index', function() {
return gulp.src('frontend/assets/include/index/index.html')
.pipe(rigger())
.pipe(gulp.dest('public'));
});
gulp.task('html_page-1', function() {
return gulp.src('frontend/assets/include/page-1/index.html')
.pipe(rigger())
.pipe(rename('architecture.html'))
.pipe(gulp.dest('public'));
});
gulp.task('html_page-2', function() {
return gulp.src('frontend/assets/include/page-2/index.html')
.pipe(rigger())
.pipe(rename('office.html'))
.pipe(gulp.dest('public'));
});
gulp.task('html_page-3', function() {
return gulp.src('frontend/assets/include/page-3/index.html')
.pipe(rigger())
.pipe(rename('participants.html'))
.pipe(gulp.dest('public'));
});
gulp.task('html_page-4', function() {
return gulp.src('frontend/assets/include/page-4/index.html')
.pipe(rigger())
.pipe(rename('visitors.html'))
.pipe(gulp.dest('public'));
});
gulp.task('html_page-5', function() {
return gulp.src('frontend/assets/include/page-5/index.html')
.pipe(rigger())
.pipe(rename('interior.html'))
.pipe(gulp.dest('public'));
});
gulp.task('styles', function () {
return gulp.src('frontend/styles/**/*.css')
.pipe(concatCss('all.css'))
.pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], {cascade: true}))
.pipe(minifyCss('all.css'))
.pipe(rename('all.min.css'))
.pipe(gulp.dest('public/css'));
});
gulp.task('images', function() {
return gulp.src('frontend/assets/images/**/*.{jpg,jpeg,png,gif}')
.pipe(cache(imagemin({
interlaced: true,
progressive: true,
svgoPlugins: [{removeViewBox: false}],
une: [pngquant()]
})))
.pipe(gulp.dest('public/images'));
});
gulp.task('js', function() {
return gulp.src('frontend/assets/js/**/*')
.pipe(uglify())
.pipe(rename('all.min.js'))
.pipe(gulp.dest('public/js'));
});
gulp.task('libs', function() {
return gulp.src([
'frontend/assets/libs/jquery-1.9.1.min.js',
'frontend/assets/libs/owl.carousel.min.js',
'frontend/assets/libs/jquery.easing.1.3.js',
'frontend/assets/libs/jquery.coda-slider-3.0.min.js',
'frontend/assets/libs/tabulous.min.js',
'frontend/assets/libs/masonry.pkgd.min.js',
])
.pipe(concat('libs.min.js'))
.pipe(gulp.dest('public/js'));
});
gulp.task('clean', function() {
return del('public/*');
});
gulp.task('clear', function() {
return cache.clearAll();
});
gulp.task('assets', function() {
return gulp.src('frontend/assets/{fonts,images}/**/*.*')
.pipe(changed('public'))
.pipe(gulp.dest('public'));
});
/*gulp.task('assets', function() {
return gulp.src(['frontend/assets/{fonts,images}/**', 'frontend/assets/index.html'], {since: gulp.lastRun('assets')})
.pipe(changed('public'))
.pipe(gulp.dest('public'));
});*/
gulp.task('build', gulp.series(
'clean',
gulp.parallel('html_index', 'html_page-1', 'html_page-2', 'html_page-3', 'html_page-4', 'html_page-5', 'styles', 'images', 'js', 'libs', 'assets'))
);
gulp.task('watch', function() {
gulp.watch('frontend/assets/**/*.*', gulp.series('html_index'));
gulp.watch('frontend/assets/**/*.*', gulp.series('html_page-1'));
gulp.watch('frontend/assets/**/*.*', gulp.series('html_page-2'));
gulp.watch('frontend/assets/**/*.*', gulp.series('html_page-3'));
gulp.watch('frontend/assets/**/*.*', gulp.series('html_page-4'));
gulp.watch('frontend/assets/**/*.*', gulp.series('html_page-5'));
gulp.watch('frontend/styles/**/*.*', gulp.series('styles'));
gulp.watch('frontend/assets/images/**/*.*', gulp.series('images'));
gulp.watch('frontend/assets/js/**/*.*', gulp.series('js'));
gulp.watch('frontend/assets/libs/**/*.*', gulp.series('libs'));
gulp.watch('frontend/assets/**/*.*', gulp.series('assets'));
});
gulp.task('serve', function() {
browserSync.init({
server: 'public'
});
browserSync.watch('public/**/*.*').on('change', browserSync.reload);
});
gulp.task('dev',
gulp.series('build', gulp.parallel('watch', 'serve'))
);