Imagemin不会覆盖符号链接,而是覆盖原始文件

时间:2019-03-18 14:33:04

标签: javascript gulp gulp-imagemin

如果我执行default任务,我会期望:

  1. ./web/assets/dist/img/*中的文件被删除
  2. ./assets/img/**/*.*中的所有文件生成
  3. 符号链接
  4. ./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/**/*的图像文件已缩小
  2. 来自./assets/img/**/*的所有其他文件都是符号链接的

./web/assets/dist/img/目标文件夹中。

0 个答案:

没有答案