javascript - 是否可以在 gulpfile 中添加 if 语句来根据文件大小运行任务?

标签 javascript arrays npm gulp

我正在使用 gulp 来压缩图像,但我只想压缩大小超过 200kb 的图像。是否可以在 JavaScript 中遍历文件夹并仅对超过 200kb 的文件运行缩小?我正在使用 lossy-imagemin 包。据我所知,它只适用于服务器端语言,但如果可能的话,我希望得到一个明确的答案。提前致谢。

最佳答案

是的,客户端是可能的。此示例使用 gulp-filter过滤掉不大于200kb的文件。

const gulp = require("gulp");
const filter = require('gulp-filter');
const fs = require('fs');
//  const path = require('path');  not needed for this example
const someImageMin = require('  your image min plugin   ' );


gulp.task('default', function () {

  // include only files > 200KB
  // retore option needed if you want to reinject the filtered-out files later
  const myFilter = filter(file => (fs.statSync(file.path).size > 200000), {restore: true});

  return gulp.src(['pics/*jpg' , 'pics/*png'])
    .pipe(myFilter)
    .pipe(someImageMin())

     // if you want to reinject the files excluded by the filter
    .pipe(myFilter.restore)
    .pipe(gulp.dest('new'));
});

[gulp-ignore][2] is another option.

关于javascript - 是否可以在 gulpfile 中添加 if 语句来根据文件大小运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668919/

相关文章:

javascript - 调用 MVC Controller 操作以返回 Wordpress 网站的 View

javascript - 使用 typescript 的匿名模块

javascript - 从数组中删除随机字符串,JavaScript

arrays - 将值分配给 R 中数组的特定维度

node.js - 如果依赖项不是来自 NPM,NPM 安装不会触发 babel 构建

node.js - 无法启动 npm/yarn

node.js - ENOTFound 使用 Bower 安装 Gulp-Sass 时出错

javascript - 标记 ASP.NET 自定义控件需要 JS 库的好方法是什么

c - 快速排序和冒泡排序给出不同的结果

javascript - Jquery 对话框未使用 Angular 范围填充