gulp-chain
v2.0.1
Published
Prepare gulp plugin chains for re-use
Downloads
63
Maintainers
Readme
gulp-chain
Prepare a chain of pipes for use as a gulp plugin (or any other piped stream, there is no true dependency of gulp)
Installation
npm install --save-dev gulp-chain
As of version 2.0.0 gulp-chain
requires NodeJS 4 or higher. If you are 'stuck' on NodeJS 0.10 - 0.12, you will need to specify the version (the latest in the v1 range is 1.1.0).
$ npm install --save-dev gulp-chain@^1.1.0
Usage
var chain = require('gulp-chain'),
myStream = chain(function(stream) {
return stream
.pipe(pluginA())
.pipe(pluginB())
.pipe(pluginC())
;
});
// later on:
gulp.task('mytask', function() {
gulp.src('./source/**/*')
.pipe(pluginD())
// add the created myStream
.pipe(myStream())
// and pipe it towards another plugin
.pipe(pluginE())
.pipe(gulp.dest('./destination'))
;
});
API
chain(function prepare [, ... ])
With gulp-chain
you can prepare pretty much every chain, even provide default arguments.
The function prepare
has the following signature; function(stream input [, ... ])
This means that gulp-chain
always provides a stream as first argument, followed by any argument given or predefined.
The return value of gulp-chain
is always a function which returns a stream that you can pipe into (like any other plugin in gulp
).
Set up default arguments
In the following example, we prepare a chain which has an argument hello
, which is set to the value 'hello world'
by default.
var chain = require('gulp-chain'),
myStream = chain(function(stream, hello) {
return stream
.pipe(pluginA())
.pipe(pluginB(hello))
.pipe(pluginC())
;
}, 'hello world');
If the myStream
-'plugin' is used without any arguments, the value of hello
will contain 'hello world'
gulp.task('mytask', function() {
gulp.src('./source/**/*')
// add the created myStream
// myStream will actually be invoked as: myStream('hello world')
.pipe(myStream())
.pipe(gulp.dest('./destination'))
;
});
If you have no default value, or if you need to override it, you can supply another value.
gulp.task('mytask', function() {
gulp.src('./source/**/*')
// add the created myStream
.pipe(myStream('welcome stranger'))
.pipe(gulp.dest('./destination'))
;
});
You can provide any number of (default) arguments, just ensure the order remains the same.
License
GPLv2 © Konfirm