【问题标题】:Using gulp-image or Gulp-imagemin with multiple subdirectories使用带有多个子目录的 gulp-image 或 Gulp-imagemin
【发布时间】:2016-08-17 13:53:23
【问题描述】:

我正在使用Gulp-image plugin atm(也尝试过 gulp-imagemin)。

我的 gulpfile.js 标记:

// Include gulp
const gulp = require('gulp')

// Include gulp plugins
const images = require('gulp-image')

// Image optimalization
gulp.task('images', () => {
  gulp.src('uploads/**/*')
  .pipe(images())
  .pipe(gulp.dest('./Compressed-images/'));
})

gulp.task('default', ['images'])

这就是问题所在:

gulp.src('uploads/**/*')

只取目录下子目录中的所有图片:

uploads/

有什么方法可以访问多级目录的图像而无需全部输入?

例如:

访问目录中的图片:

uploads/sub-dir-1/sub-dir-3/sub-dir-3/

无需输入类似的内容?

uploads/sub-dir-1/sub-dir-2/sub-dir-3/*.jpg
uploads/**/**/**/*.jpg

我阅读了以下帖子

但在那里找不到答案。

【问题讨论】:

  • uploads/**/* 确实匹配多个子目录 -> glob primer
  • 是的,它将匹配 uploads/ 目录中的所有目录,但不会匹配子目录中的任何目录..
  • 不,你错了。它确实匹配子目录中的目录。
  • 当我运行上面的代码时,会发生这种情况 - 它会创建 sub-dir-1/ 以及 Compressed-images/ 中该目录中的所有图像,它还将创建 sub-dir- 2/ 目录,但该目录将为空...
  • 试过了。正如我所说,sub-dir-2 不是空的。您需要提供MCVE

标签: gulp gulp-imagemin


【解决方案1】:

你正在做的应该工作。我做了几个测试,对我来说效果很好,我添加了 3 个级别并且效果很好。这是输出

[23:08:34] ✔ test.png -> before=69.25 KB after=20.1 KB reduced=49.15 KB(71%)
[23:08:34] ✔ sub1/sub2/ub3/test.png -> before=69.25 KB after=20.1 KB reduced=49.15 KB(71%)
[23:08:34] ✔ sub1/sub2/test.png -> before=69.25 KB after=20.1 KB reduced=49.15 KB(71%)
[23:08:34] ✔ sub1/test.png -> before=69.25 KB after=20.1 KB reduced=49.15 KB(71%)

您也可以尝试使用gulp-debug 查看您正在抓取的文件。

我更倾向于认为压缩图像时某些东西默默地失败了,也许图像已损坏。

【讨论】:

    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多