gulp常用插件之gulp-notify使用
更多gulp常用插件使用请访问:gulp常用插件汇总
gulp-notify这是一款gulp通知插件。
安装
一键安装不多解释
npm install --save-dev gulp-notify
使用
例1:
var notify = require("gulp-notify");
gulp.src("./src/test.ext")
.pipe(notify("Hello Gulp!"));
例2:
var notify = require("gulp-notify");
gulp.src("./src/test.ext")
.pipe(notify("Found file: <%= file.relative %>!"));
注释/提示
即使出错,gulp-notify
也会传递vinyl files
。因此,如果您使用的是gulp-plumber
,如果通知程序返回错误,则运行不会中断。
如果你想通知错误,可以使用gulp-plumber
不中断运行,迫使你不得不重新启动gulp。
您可以使用notify.onError()
作为gulp-plumber
的errorHandler
,如下所示:
gulp.src("../test/fixtures/*")
.pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")}))
.pipe(through(function () {
this.emit("error", new Error("Something happend: Error message!"))
}));
API
notify(String)
用于通知流中每个数据的消息。字符串可以是lodash模板,因为它通过gulp-util.template传递。notify(Function)
类型:function(VinylFile)
来自gulp
流的Vinyl File
作为参数传入。
该函数的结果可以是用作消息的字符串或选项对象(请参见下文)。如果返回值是一个字符串,则它可以是lodash模板,因为它是通过gulp-util.template传递的。
如果false
从函数返回,则通知将不会运行。notify(options)
选项传递到报告程序上,因此在Windows上,您可以定义Growl主机,在Mac上,您可以传递contentImage,依此类推。
有关 所有选项,请参阅节点通知程序
默认通知值:
* 定期通知的Gulp徽标
* 错误时倒置了Gulp徽标
* 在Mac上,青蛙声音错误。
另请参见高级示例。
options.onLast
类型:Boolean
默认值:false
如果通知仅应在流的最后一个文件上发生。默认情况下,每个文件都会触发通知。options.emitError
类型:Boolean
默认值:false
返回的流是否应该发出错误。如果emitError
为true
,则必须.on('error')
手动处理,以防通知程序(gulp-notify)
失败。如果false
设置了默认值,则不会发出错误,而只是将其打印到控制台。
这意味着您可以在CI系统上运行通知程序,而无需选择退出,而只是让其正常地失败。options.message
类型:String
默认:流中的文件路径
您希望附加到文件的消息。字符串可以是lodash
模板,因为它通过gulp-util.template传递。
范例:Created <%= file.relative %>
。- 作为功能函数
类型:Function(vinylFile)
请参阅notify(Function)
。 options.title
类型:String
默认:“ Gulp通知”
通知的标题。字符串可以是lodash模板,因为它通过gulp-util.template传递。
范例:Created <%= file.relative %>
。- 作为功能函数
类型:Function(vinylFile)
请参阅notify(Function)
。 options.templateOptions
类型:Object
默认值:{}
传递给lodash
模板的对象,用于传递给模板的其他属性。
gulp.src("../test/fixtures/*")
.pipe(notify({
message: "Generated file: <%= file.relative %> @ <%= options.date %>",
templateOptions: {
date: new Date()
}
}))
options.notifier
类型:Function(options, callback)
默认:node-notifier模块
通过传入函数来交换通知程序。该函数需要两个参数:options
和callback
。
通知完成后必须调用回调。选项将同时包含标题和消息。
请参阅notify.withReporter
语法糖。
notify.on(event, function (notificationOptions)) - Events
如果该wait
选项设置为true
,则通知者将触发事件click
或timeout
,无论用户单击通知还是超时。您在主通知对象(而不是产生流)上侦听这些事件。
var notify = require('gulp-notify');
notify.on('click', function (options) {
console.log('I clicked something!', options);
});
notify.on('timeout', function (options) {
console.log('The notification timed out', options);
});
gulp.task("click", function () {
return gulp.src("some/glob/**")
.pipe(notify({ message: 'Click or wait', wait: true }));
});
notify.withReporter(Function)
类型: Reporter
包装options.notifier
仅使用传入的报告程序返回新的通知功能。
例:
var custom = notify.withReporter(function (options, callback) {
console.log("Title:", options.title);
console.log("Message:", options.message);
callback();
});
gulp.src("../test/fixtures/1.txt")
.pipe(custom("This is a message."));
这将与
gulp.src("../test/fixtures/1.txt")
.pipe(notify({
message: "This is a message."
notifier: function (options, callback) {
console.log("Title:", options.title);
console.log("Message:", options.message);
callback();
}
}));
但是,很多漂亮。
notify.onError()
与using
完全相同的API notify()
,但是在vinyl File
传递a
的地方,传递错误对象。
例:
gulp.src("../test/fixtures/*")
.pipe(through(function () {
this.emit("error", new Error("Something happend: Error message!"))
}))
.on("error", notify.onError(function (error) {
return "Message to the notifier: " + error.message;
}));
或者简单地:
gulp.src("../test/fixtures/*")
.pipe(through(function () {
this.emit("error", new Error("Something happend: Error message!"))
}))
.on("error", notify.onError("Error: <%= error.message %>"));
gulp.src("../test/fixtures/*")
.pipe(through(function () {
this.emit("error", new Error("Something happend: Error message!"))
}))
.on("error", notify.onError({
message: "Error: <%= error.message %>",
title: "Error running something"
}));
在onError()
终点不支持lodash.template
。
onError()
会自动为您结束视频流。使观看更加轻松。
notify.logLevel(level)
类型:Integer
默认值:2
设置是否使用记录器。如果日志级别设置为0,将不使用任何日志记录。如果未传递新的日志级别,则返回当前日志级别。
- 0:无日志记录
- 1:登录错误
- 2:记录错误和常规通知。
如果将logging设置为> 0
,则将记录标题和传递给的消息,gulp-notify
如下所示:
➜ gulp-notify git:(master) ✗ gulp --gulpfile examples/gulpfile.js one
[gulp] Using file /Users/example/gulp-notify/examples/gulpfile.js
[gulp] Working directory changed to /Users/example/repos/gulp-notify/examples
[gulp] Running 'one'...
[gulp] Finished 'one' in 4.08 ms
[gulp] gulp-notify: [Gulp notification] /Users/example/gulp-notify/test/fixtures/1.txt
禁用 gulp-notify
如果您运行的系统处理通知的能力很差,或者只是不想使用,gulp-notify
而您的项目可以呢?您可以gulp-notify
使用环境变量禁用它DISABLE_NOTIFIER
。
export DISABLE_NOTIFIER=true;
这将禁用所有方法。notify()
,notify.onError
和notify.withReporter
。
例子:
要查看从根目录运行的所有示例:
$ gulp --gulpfile examples/gulpfile.js --tasks
[gulp] Using file /Users/example/gulp-notify/examples/gulpfile.js
[gulp] Working directory changed to /Users/example/gulp-notify/examples
[gulp] Tasks for /Users/example/gulp-notify/examples/gulpfile.js
[gulp] ├── multiple
[gulp] ├── one
[gulp] ├── message
[gulp] ├── customReporter
[gulp] ├── template
[gulp] ├── templateadv
[gulp] ├── function
[gulp] ├── onlast
[gulp] ├── advanceMac
[gulp] ├── error
[gulp] ├── forceGrowl
[gulp] └── customError
运行示例:
$ gulp --gulpfile examples/gulpfile.js multiple
[gulp] Using file /Users/example/gulp-notify/examples/gulpfile.js
[gulp] Working directory changed to /Users/example/gulp-notify/examples
[gulp] Running 'multiple'...
[gulp] Finished 'multiple' in 3.75 ms
作为jshint报告员
gulp-notify
可以轻松用作jshint
报告程序。当jshint
在乙烯基文件上公开结果时,我们可以在如下函数中使用它们:
gulp.task('lint', function() {
gulp.src('/src/**/*.js')
.pipe(jshint())
// 使用gulp-notify作为jshint报告器
.pipe(notify(function (file) {
if (file.jshint.success) {
// 不显示的东西,如果成功
return false;
}
var errors = file.jshint.results.map(function (data) {
if (data.error) {
return "(" + data.error.line + ':' + data.error.character + ') ' + data.error.reason;
}
}).join("\n");
return file.relative + " (" + file.jshint.results.length + " errors)\n" + errors;
}));
});
如果您在中使用消息功能gulp-notify
,则不会显示该消息。直接使用function
和都是如此{ message: function () {}}
。
gulp常用插件之gulp-notify使用的更多相关文章
- gulp常用插件之gulp-size使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-size这是一款显示项目的大小插件. 更多使用文档请点击访问gulp-size工具官网. 安装 一键安装不多解释 npm install ...
- gulp常用插件之browser-sync使用
更多gulp常用插件使用请访问:gulp常用插件汇总 browser-sync这是一个可以在多端(pc.移动.平板)实时监测文件修改,自动刷新浏览器的工具.其实这并不是转给gulp使用的,在其它构建工 ...
- 精通gulp常用插件
本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...
- node和gulp实现前端工程自动化(附:gulp常用插件)
/** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...
- gulp常用插件之gulp-eslint使用
更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...
- gulp常用插件之gulp-babel使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-babel这是Babel的Gulp插件. 此自述文件适用于gulp-babel v8 + Babel v7检查7.x分支以了解使用Bab ...
- gulp常用插件之gulp-postcss使用
更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-postcss**这是一款通过多个插件通过管道传递CSS,但是仅解析一次CSS. 更多使用文档请点击访问gulp-postcss工 ...
- gulp常用插件之cssnano使用
更多gulp常用插件使用请访问:gulp常用插件汇总 cssnano这是一款将你的 CSS 文件做 多方面的的优化,以确保最终生成的文件 对生产环境来说体积是最小的插件. 更多使用文档请点击访问cha ...
- gulp常用插件之pump使用
更多gulp常用插件使用请访问:gulp常用插件汇总 pump这是一款小型节点模块,可将流连接在一起并在其中一个关闭时将其全部销毁. 使用标准source.pipe(dest)源时,如果dest发出关 ...
随机推荐
- Go语言实现:【剑指offer】整数中1出现的次数(从1到n整数中1出现的次数)
该题目来源于牛客网<剑指offer>专题. 求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下1 ~ 13中包含1的数字有1.10.1 ...
- 浅谈Go语言的Goroutine和协程
0x00.前言 前面写了一篇初识Go语言和大家一起学习了Go语言的巨大潜力.语言简史.杀手锏特性等,感兴趣的读者可以回顾一下. 今天来学习Go语言的Goroutine机制,这也可能是Go语言最为吸引人 ...
- Python趣味入门02: 妥妥地安装配置Python(Windows版)
< 上一篇:Python趣味入门01:你真的了解Python么? 本篇内容手把手教您如何去网上下载安装Python的运行环境,本文写于2020年Python稳定的版本是3.8,Windows流行 ...
- [Effective Java 读书笔记] 第8章 通用程序设计
本章主要讲了以下几条基本的JAVA编程原则: 1.将局部变量的作用域控制在最小,在使用时才定义 2.for-each优于for循环 有三个例外(1,2点主旨就是,for each只能用于读取,不能用于 ...
- 最近很火的namebase羊毛, 手把手教你怎么薅
闲话少说直接说步骤: 1. 羊毛 https://www.namebase.io/airdrop 要求条件: 1) 要有github账号 2) 2019年2月之前有16+个follower 3) 要有 ...
- Spring整合EasyExcel【基础设计】
前言 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI ...
- Zookeeper 应用实例
配置管理 程序总是需要配置的,如果程序分散部署在多台机器上,要逐个改变配置就变得困难.好吧,现在把这些配置全部放到zookeeper上去,保存在 Zookeeper 的某个目录节点中,然后所有相关应用 ...
- [jQuery]顶级对象$(二)
$ 是 jQuery 的缩写 <script> # 方法1. $ 是jQuery的别称 弹出提示 $(function () { alert(11) ); # 方法2 jQuery(fun ...
- Netty——知识点总结
引言 Netty blablabla…… Netty 知识点
- python基础入门之四 —— 列表
1.格式 [数据1,数据2,数据3,...] 列表可以一次性存多个数据,可以为不同的数据类型 2.下标 从0开始循序向下分配 3.常用函数 查找 index():返回指定数据所在位置下标,不存在就报错 ...