如果文件夹已存在,则 Gulp imagemin 跳过文件夹创建

问题描述

我是 Gulp 的新手,但设法创建了以下 gulpfile.js 来缩小驻留在 /image/ 文件夹中的图像并输出到我的 /images/optimised/ 文件夹:

const gulp = require('gulp');
const imagemin = require('gulp-imagemin');

function minifyimages() {

    return gulp.src('./images/*')
    .pipe(imagemin())
    .pipe(gulp.dest('images/optimised'))
    verbose: true
}

exports.minifyimages = minifyimages;

如果我第一次运行脚本,它会自行生成 /images/optimised/ 文件夹,这很好。但是如果我再次运行它,它会生成一个 /images/optimised/optimised/ 文件夹。

如果 /optimised/ 文件夹已经存在,有没有办法让它跳过创建?

谢谢

解决方法

试试这个任务:

function minifyimages() {

    return gulp.src('./images/*.+(gif|png)')   // change here
    .pipe(imagemin())
    .pipe(gulp.dest('./images/optimised'))
    verbose: true
}

我将文件扩展名添加到 gulp.src(您可能有更多图像类型),因此 gulp 根本不会查看 optimized 文件夹。从而也优化了它们的文件夹结构。