2.0.1 • Published 8 years ago

gulp-chain v2.0.1

Weekly downloads
788
License
GPL-2.0
Repository
github
Last release
8 years ago

npm version Build Status Coverage Status dependencies dev-dependencies Codacy Badge

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 Open

2.0.1

8 years ago

2.0.0

8 years ago

1.1.0

8 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago