Have ideas to improve npm?Join in the discussion! »

    gulp-chain

    2.0.1 • Public • Published

    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

    Install

    npm i gulp-chain

    DownloadsWeekly Downloads

    476

    Version

    2.0.1

    License

    GPL-2.0

    Last publish

    Collaborators

    • avatar