Imagemin не перезаписывает символические ссылки, а перезаписывает оригинальные файлы - PullRequest
0 голосов
/ 18 марта 2019

Если я выполню задачу default, я ожидаю:

  1. файлы в ./web/assets/dist/img/* удаляются
  2. символические ссылки создаются для всех файлов в ./assets/img/**/*.*
  3. все изображения в ./assets/img/* должны быть уменьшены и помещены в ./web/assets/dist/img/*

Но третий шаг работает неправильно.Вместо этого gulp-imagemin следует по символическим ссылкам в каталоге назначения ./web/assets/dist/img/ (шаг 2) и минимизирует исходные файлы в ./assets/img/.Он не перезаписывает символические ссылки минифайдами, как я ожидал.

var gulp  = require('gulp'),
    imagemin = require('gulp-imagemin'),
    del = require('del');

gulp.task('clean', function () {
    return del(['./web/assets/dist/img/*']);
});

gulp.task('images', function () {
    return gulp.src('./assets/img/**/*.*')
        .pipe(gulp.symlink('./web/assets/dist/img/'));
});

gulp.task('compress', function() {
    return gulp.src('./assets/img/**/*.{jpg,jpeg,png}')
        .pipe(imagemin([
            imagemin.jpegtran({progressive: true}),
            imagemin.optipng({optimizationLevel: 5}),
        ]))
        .pipe(gulp.dest('./web/assets/dist/img/'))
});

gulp.task('default',
    gulp.series(
        'clean',
        'images',
        'compress'
    )
);

Я надеюсь, что кто-то может предложить мне решение, где:

  1. Файлы изображений из ./assets/img/**/* былиminified
  2. Все остальные файлы из ./assets/img/**/* были символическими ссылками

в папке назначения ./web/assets/dist/img/.

...