gulpstream
v0.3.8
Published
Modular Gulp
Downloads
5
Readme
gulpstream
Modular Gulp
Purpose
GulpStream
encapsulates GulpGlob
, PolyPipe
and GulpDest
.
It is used to create/recall any such triplet in a unique manner as Streamer
, thus making it easy to create and recycle common Gulp
pipelines.
Creating
The GulpStream
constructor expects to receive special arrays, one per mode.
Each array is preprocessed to extract relevant information to infer the mode
name and to construct the GulpGlob
, GulpDest
and PolyPipe
objects.
mode
: Using the first string element or'default'
.glob
: Merging allGulpGlob
's,SimpleGulpGlob
's and{glob}
elements,glob
being a string or an array of strings as valid file paths or patterns.dest
: One per mode, either aGulpDest
, aSimpleGulpDest
or{dest}
. The first mode to have one defined imposes its dest to all modes that have none.pipe
: Merging allPolyPipe
's,MonoPipe
's and{pipe}
elements in sequence,pipe
being an array of arrays ofgulp
plugins and their arguments, as in[[newer, 'tmp'], [babel], [debug]]
. Shorthands will work when there are no arguments for plugins:babel
or[babel]
or[[babel]]
will all work, as well as[babel, debug]
. But[newer, 'tmp']
won't. It must be[[newer, 'tmp']]
.
import GulpStream from 'gulpstream';
import GulpGlob from 'gulpglob';
import GulpDest from 'gulpdest';
import PolyPipe from 'polypipe';
import babel from 'gulp-babel';
const glob = 'src/*.js';
const dest = 'build';
const pipe = [babel];
const g1 = new GulpStream(
[{glob, dest}],
['transpile', {glob, dest, pipe}]
);
Mode
As a Polyton, a GulpStream
actually
encapsulates several Streamer
's. This allows to switch dynamically between pipelines and dests while keeping the same source.
Passing a string as one of the Streamer
initial arguments is understood to be a mode
name.
Method setMode(mode)
allows to change mode
. Mode is changed implicitly is you pass {mode}
to one of src(options)
, stream(options)
or dest(options)
.
License
gulpstream is MIT licensed.
© 2016-2018 Jason Lenoble