node package manager


Gulp Task Builder

Version Build Status Docs License Downloads


Node module task builder which can be configured by a JSON Object containing the relevant tasks to build.

Table of Contents

Getting Started

  1. Setup

. Features




npm install gulp-task-builder -D


var builder = require('gulp-task-builder')
var tasks = {
  "task1":{src:"path/to/source/files", dest:"path/to/save"}

Task Options


Basic Example

with required options

var builder = require('gulp-task-builder')
var tasks = {
  "task1":{src:"./src/*.js", ext:".js", dest:"dest"},
  "task2":{src:"./packages/*.js", ext:".js", dest:"dest/lib"}


Compress your files with the compress option. This function is using gulp-uglify for javascript, gulp-htmlmin for html and gulp-clean-css for css files

{src:"./src/*.js", ext:".js", dest:"dest", compress:true}
{src:"./src/*.html", ext:".html", dest:"dest", compress:{collapseWhitespace: true}}
{src:"./src/*.css", ext:".css", dest:"dest", compress:{compatibility: 'ie8'}}

for more css options Click Here


Concatenate (join) your files with the concat option.

//File name will be task1.js which is the task name
task1:{src:"./src/*.js", ext:".js", dest:"dest", concat:true}

//File name will be jsbundle.js which is the task name
task1:{src:"./src/*.js", ext:".js", dest:"dest", concat:true, name:"jsbundle"}


Filter your source files with the filter option.

{src:"./src/*.js", ext:".js", dest:"dest", filter:'!src/vendor'}
{src:"./src/*.js", ext:".js", dest:"dest", filter:['*', '!src/vendor']}
{src:"./src/*.js", ext:".js", dest:"dest", filter:{match:['*', '!src/vendor'], options:{restore:true, passthrough:true, dot:true}}}
{src:"./src/*.js", ext:".js", dest:"dest", filter:function(file){ /*You can access file.cwd, file.base, file.path and file.contents */ }}

restore and passthrough will come very soon.


Rename your destination file or path. You can provide String|Function|Object.

{src:"./src/*.js", ext:".js", dest:"dest", rename:"main/text/ciao/"}
{src:"./src/*.js", ext:".js", dest:"dest", rename:function (path) { path.dirname += "/ciao"; path.basename += "-goodbye"; path.extname = ".md" }}
{src:"./src/*.js", ext:".js", dest:"dest", rename:{dirname: "main/text/ciao", basename: "aloha", prefix: "bonjour-", suffix: "-hola", extname: ".md"}}


Wrap your files or target files with the given headers and footers Object|Array.

{src:"./src/*.js", ext:".js", dest:"dest", wrapper:{header:"this will be header", footer:"this will be footer"}}
{src:"./src/*.js", ext:".js", dest:"dest", wrapper:[{header:"header1", footer:"footer1"}{header:"headerN", footer:"footerN"}]}

Log contents

You can also log paths contents and other stream options. In case set to true the default value will be contents

{src:"./src/*.js", ext:".js", dest:"dest", log:true}
{src:"./src/*.js", ext:".js", dest:"dest", preLog:true}
{src:"./src/*.js", ext:".js", dest:"dest", preLog:'path'}// Console Paths

Disable save

You can also disable the save option by setting save:false

{src:"./src/*.js", ext:".js", dest:"dest", save:false}

Task options

Each task contains REQUIRED options which can be passed along with OPTIONALS(Flow Control, Plugins, Log Options).


Required Options

  • src (string) Gulp src parameter. Path of your source files. It can be also regEx. More Details.
  • dest (string) Gulp dest parameter. Path where you want to save your files. More Details.
  • ext (string) extension of file which is defined in src option.


Flow Control

  • runBefore (string|Array(string)) Define task dependencies which will run before this task.
  • save (bool) Set true if you want to save your output. Default true.
  • name (string) Recommended. Define unique name of gulp task.
  • order (Array(string)) Define flow of execution. Like ['log','filter','compress','concat','wrapper'].


  • filter (Object|string|array|function) To filter your files. if you are sending Object then that object should have two properties match and options. See gulp-filter for more details.
  • concat (string|object) object contains two properties name and ext. See gulp-concat for more details
  • replace (object|array(objects)) Object can be one of these two objects {target:"", src:""} this will send to gulp-replace and second {buildName:replacement} buildName (string|RegExp) replacement (String|Array|Object).
  • debug (bool) Enable gulp-plumber
  • compress (bool|object) this will use gulp-uglify if ext is .js, gulp-htmlmin if ext is .html and gulp-clean-css if css is .css
  • wrapper (Object|Array) Each Object has two options header and footer. More Details
  • harmony (Boolean) Set it true if you need ES6 support too. More Details
  • rename (String|Object|Function) You can edit the name or edit the path of your destination file. More Details

Log Options

  • log (string|bool) log/console content of stream. All options of glob-stream are supported. Default value is contents.
  • preLog (bool) console stream before processing. same as log above.
  • postLog (bool) console stream just before save(gulp.dest function) stream. same as log above.
  • get (function) Just in case if you want to get stream.NOTE it will not effect the stream.