更多gulp常用插件使用请访问:gulp常用插件汇总


gulp-if这是一款条件判断插件。

注意:gulp-if一起使用时,表现不佳的插件通常会变得更糟。通常,修复不在gulp-if中。

注意:lazypipe一起使用时效果很好,请参见下文

更多使用文档请点击访问gulp-if工具官网

安装

一键安装不多解释

npm install --save-dev gulp-if

使用

/**
* @param condition {Boolen} 判断条件或glob条件
* @param stream condition为true时,执行的任务
* @param elseStream condition为false时,执行的任务
* @param minimatchOptions 如果是GLUB条件,这些选项被传递给minimatch
*/
gulpif(condition, stream [, elseStream, [, minimatchOptions]])

1:有条件地过滤内容

var gulpif = require('gulp-if');
var uglify = require('gulp-uglify'); var condition = true; // TODO: add business logic gulp.task('task', function() {
gulp.src('./src/*.js')
.pipe(gulpif(condition, uglify()))
.pipe(gulp.dest('./dist/'));
});

如果条件为真,则压缩内容,将所有文件发送到dist文件夹

2:三元过滤器

var gulpif = require('gulp-if');
var uglify = require('gulp-uglify');
var beautify = require('gulp-beautify'); var condition = function (file) {
// TODO: 添加业务逻辑
return true;
} gulp.task('task', function() {
gulp.src('./src/*.js')
.pipe(gulpif(condition, uglify(), beautify()))
.pipe(gulp.dest('./dist/'));
});

如果条件返回true,则进行压缩其他对象进行美化,然后所有内容发送到dist文件夹

3:从流中删除内容

var gulpIgnore = require('gulp-ignore');
var uglify = require('gulp-uglify');
var jshint = require('gulp-jshint'); var condition = './gulpfile.js'; gulp.task('task', function() {
gulp.src('./*.js')
.pipe(jshint())
.pipe(gulpIgnore.exclude(condition))
.pipe(uglify())
.pipe(gulp.dest('./dist/'));
});

对所有内容运行JSHint,从流中删除gulpfile,然后进行丑化并编写其他所有内容。

4:从流中排除事物

var uglify = require('gulp-uglify');

gulp.task('task', function() {
gulp.src(['./*.js', '!./node_modules/**'])
.pipe(uglify())
.pipe(gulp.dest('./dist/'));
});

抓取所有不在node_modules文件夹中的JavaScript文件,对其进行丑化处理并将其写入。这是最快的,因为node_modules中什么都没有留下gulp.src()

** 与lazypipe搭配使用效果很好 **

Lazypipe创建一个函数,该函数在使用时初始化管道链。这使您可以在gulp-if条件内创建一系列事件。仅当linting标志为true时,此方案才会运行jshint分析和报告程序。

var gulpif = require('gulp-if');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var lazypipe = require('lazypipe'); var linting = false;
var compressing = false; var jshintChannel = lazypipe()
// 添加管道步骤
.pipe(jshint) // 注意流函数尚未被调用!
.pipe(jshint.reporter)
// 添加具有自变量的步骤
.pipe(jshint.reporter, 'fail'); gulp.task('scripts', function () {
return gulp.src(paths.scripts.src)
.pipe(gulpif(linting, jshintChannel()))
.pipe(gulpif(compressing, uglify()))
.pipe(gulp.dest(paths.scripts.dest));
});

** 在lazypipe内部效果很好 **

Lazypipe假定所有函数参数都是静态的,如果需要在每个lazypipe内部实例化gulp-if参数,则为gulp。通过在惰性管道步骤上传递函数可以轻松解决此差异

var gulpif = require('gulp-if');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var lazypipe = require('lazypipe'); var compressing = false; var jsChannel = lazypipe()
// 添加管道步骤
.pipe(jshint) // 注意流函数尚未被调用!
.pipe(jshint.reporter)
// 添加具有自变量的步骤
.pipe(jshint.reporter, 'fail')
// 你不能说 .pipe(gulpif, compressing, uglify)
// 因为丑化需要在每个lazypipe情况下单独实例化
// 您可以这样说:
.pipe(function () {
return gulpif(compressing, uglify());
});
// 为什么这样做有效?lazypipe调用该函数,并传入no参数,,
// 实例化一个新的gulp-if管道,并将其返回给lazypipe。 gulp.task('scripts', function () {
return gulp.src(paths.scripts.src)
.pipe(jsChannel())
.pipe(gulp.dest(paths.scripts.dest));
});

API

gulpif(condition, stream [, elseStream, [, minimatchOptions]])

gulp-if会将数据通过管道传输到stream任何condition真实情况。

如果conditionfalseelseStream已传递,则数据将通过管道传递到elseStream

在数据通过管道传输到streamelseStream或两者都不是之后,数据通过管道传输到stream

  • condition

    类型:booleanstat对象,或function需要一个vinyl文件并返回布尔值或RegularExpression可以在file.path

    condition参数是gulp-match支持的任何条件。将file.path传递到中gulp-match

    如果给出了功能,则该功能会传递乙烯基file。该函数应返回boolean
  • stream

    gulp-if的流,以在条件为真时将数据通过管道传输到其中。
  • elseStream

    可选,当条件为false时,为gulp-if提供流传输数据。
  • minimatchOptions

    可选,如果是全局条件,则将这些选项传递给minimatch

gulp常用插件之gulp-if使用的更多相关文章

  1. 精通gulp常用插件

    本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...

  2. node和gulp实现前端工程自动化(附:gulp常用插件)

    /** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...

  3. gulp常用插件之gulp-eslint使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...

  4. gulp常用插件之gulp-babel使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-babel这是Babel的Gulp插件. 此自述文件适用于gulp-babel v8 + Babel v7检查7.x分支以了解使用Bab ...

  5. gulp常用插件之gulp-postcss使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-postcss**这是一款通过多个插件通过管道传递CSS,但是仅解析一次CSS. 更多使用文档请点击访问gulp-postcss工 ...

  6. gulp常用插件之cssnano使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 cssnano这是一款将你的 CSS 文件做 多方面的的优化,以确保最终生成的文件 对生产环境来说体积是最小的插件. 更多使用文档请点击访问cha ...

  7. gulp常用插件之pump使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 pump这是一款小型节点模块,可将流连接在一起并在其中一个关闭时将其全部销毁. 使用标准source.pipe(dest)源时,如果dest发出关 ...

  8. gulp常用插件之gulp-notify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-notify这是一款gulp通知插件. 更多使用文档请点击访问gulp-notify工具官网. 安装 一键安装不多解释 npm inst ...

  9. gulp常用插件之gulp-beautify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-beautify这是一款使用js-beautify进行资产美化插件. 更多使用文档请点击访问gulp-beautify工具官网. 安装 ...

  10. gulp常用插件之gulp-uglify使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-uglify这是一款使用UglifyJS缩小js文件. 更多使用文档请点击访问gulp-uglify工具官网. 安装 一键安装不多解释 ...

随机推荐

  1. [Effective Java 读书笔记] 第三章类和接口 第二十三-- ??条

    第二十三条 请不要再新代码中使用原生态类型 1 使用原生态类型,就失去了泛型在安全性和表述性方面的所有优势,所以新代码中不要使用原生态类型 2 List<String>可以传递给List作 ...

  2. 四步搞定Zabbix 日志文件监控

    Zabbix 日志文件监控 一.给运行Zabbix agent的用户授予要监控日志的读取权限. 1. 執行下面的命令,追加app的可讀權限: setfacl -m u:app:r-- /var/log ...

  3. 《Web渗透与漏洞挖掘》第一章 安全知识

    漏洞:漏洞是指一个系统存在的弱点或缺陷,系统对特定威胁攻击或危险时间的敏感性,或进行攻击威胁的可能性.漏洞可能来自应用软件或操作系统设计时的缺陷或编码时的错误,也可能来自业务交互处理过程中的设计缺陷或 ...

  4. Linux bash管道符“|”使用介绍与例子

    https://blog.csdn.net/wangqianyilynn/article/details/75576815

  5. logstash 安装插件multiline

    一.安装multiline 在使用elk 传输记录 java 日志时,如下 一个java的报错 在elk中会按每一行 产生多条记录,不方便查阅 这里修改配置文件 使用  multiline   插件 ...

  6. python图片处理PIL

    一.PIL介绍 PIL中所涉及的基本概念有如下几个:通道(bands).模式(mode).尺寸(size).坐标系统(coordinate system).调色板(palette).信息(info)和 ...

  7. VNC 远程桌面 连接(安装桌面程序)

    1.修改linux启动方式       # vi /etc/inittab         将3改为5     id:5:initdefault:   2.关闭防火墙(或者单独打开接口)     #s ...

  8. 写给Unity开发者的iOS内存调试指南

    0x00 前言 工作的过程中,常常会发现有小伙伴对Unity的Profiler提供的内存数据与某些原生平台Profiler工具,例如iOS系统和Xcode,所提供的内存数据有差异而感到好奇.而且大家对 ...

  9. sublime text安装与使用记录

    一.安装Sublime Text 3 官网 http://www.sublimetext.com/3 进入官网选择所需版本下载 打开ST3,点击菜单 View -> Show Console,会 ...

  10. IT运维软件免费送 智和信通战疫活动火热进行中

    突如其来的“新型冠状病毒”疫情牵动了全国人民的心,这是一场与病毒抗争,为生命逆行与时间赛跑的战役.举国上下众志成城面对疫情,在线医疗.在线教学.在线办公.在线会议.电商销售成为热点.线上经济的火热给企 ...