学习笔记——gulp-util

gulp-util

gulp的实用功能插件

使用

1
2
3
4
5
6
7
8
9
10
11
12
var gutil = require('gulp-util');
gutil.log('stuff happened', 'Really it did', gutil.colors.magenta('123'));
gutil.beep();
gutil.replaceExtension('file.coffee', '.js'); // file.js
var opt = {
name: 'todd',
file: someGulpFile
};
gutil.template('test <%= name %> <%= file.path %>', opt) // test todd /js/hi.js

log(msg…)

color

chalk的实例

replaceExtension(path, newExtension)

替换路径中文件的后缀名,返回一个新的路径。

isStream(obj)

判断一个对象是不是一个stream,返回布尔值。

isBuffer(obj)

判断一个对象是不是一个Buffer,返回布尔值。

template(string[,data])

这是一个封装的lodash.template函数。你不洗在一个

这是一个lodash.template函数包装。你必须传入有效的gulp文件对象,才能提供给给用户,否则会报错。您不能配置任何分隔符。看lodash文档的获得更多信息。

new File(obj)

参见 vinyl

1
2
3
4
5
var file = new gutil.File({
base: path.join(__dirname, './fixtures/'),
cwd: __dirname,
path: path.join(__dirname, './fixtures/test.coffee')
});

noop()

返回一个数据流,直接传输数据但是不进行任何操作

1
2
3
4
5
6
7
8
// gulp should be called like this :
// $ gulp --type production
gulp.task('scripts', function() {
gulp.src('src/**/*.js')
.pipe(concat('script.js'))
.pipe(gutil.env.type === 'production' ? uglify() : gutil.noop())
.pipe(gulp.dest('dist/'));
});

buffer(cb)

这类似于es.wait但不是缓冲文到string,而是缓冲区任何东西到一个数组(所以对于文件对象是非常有用的)。

返回一个可以供pipe的数据流

Stream竟会触发一个数据事件,将stream通过管道输送直到传输完毕。数据会像一个数组一样被传输到callback

Callback是可选的,接收两个参数:错误和数据

1
2
3
4
gulp.src('stuff/*.js')
.pipe(gutil.buffer(function(err, files) {
}));

new PluginError(pluginName, message[,options])

  • pluginName应该是你的插件的模块名称
  • message可以是string或者现有error
  • 默认情况下,栈将不会显示。如果你认为堆栈为你的错误很重要设置options.showStack为true。
  • 如果你在为堆栈将从被拉消息传递一个错误,否则将创建一个。
  • 需要注意的是,如果你在一个自定义堆栈字符串传递需要包括沿消息。
  • 错误属性将被包括在err.toString()。可以通过包括省略{showProperties: false}在选项。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var err = new gutil.PluginError('test', {
message: 'something broke'
});
var err = new gutil.PluginError({
plugin: 'test',
message: 'something broke'
});
var err = new gutil.PluginError('test', 'something broke');
var err = new gutil.PluginError('test', 'something broke', {showStack: true});
var existingError = new Error('OMG');
var err = new gutil.PluginError('test', existingError, {showStack: true});