Gulp Task Builder
Node module task builder which can be configured by a JSON Object containing the relevant tasks to build.
DESCRIPTION
Node module task builder which can be configured by a JSON Object containing the relevant tasks to build. Now you dont need to write gulp tasks in javascript just feine object then thats it.
Table of Contents
Getting Started
. Features
. TODO
Setup
Install
npm install gulp-task-builder -D
Usage
var builder = var tasks = "task1":src:"path/to/source/files" dest:"path/to/save"builder;builder;
Examples
Basic Example
with required options
var builder = var tasks = "task1":src:"./src/*.js" ext:".js" dest:"dest" "task2":src:"./packages/*.js" ext:".js" dest:"dest/lib"builder;builder;
Compress
Compress your files with the compress
option. This function is using
- gulp-uglify for javascript
- gulp-htmlmin for html
- gulp-clean-css for css
- gulp-jsonminify for json
src:"./src/*.js" ext:".js" dest:"dest" compress:truesrc:"./src/*.html" ext:".html" dest:"dest" compress:collapseWhitespace: truesrc:"./src/*.css" ext:".css" dest:"dest" compress:compatibility: 'ie8'src:"./src/*.json" ext:".json" dest:"dest" compress:true
for more css
options Click Here
Concatenate
Concatenate (join) your files with the concat
option.
//File name will be task1.js which is the task nametask1:src:"./src/*.js" ext:".js" dest:"dest" concat:true //File name will be jsbundle.js which is the task nametask1:src:"./src/*.js" ext:".js" dest:"dest" concat:true name:"jsbundle" //JSON//File name will be jsbundle.json which is the task nametask1:src:"./src/*.json" ext:".json" dest:"dest" concat:true name:"jsonbundle"
Filter
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:truesrc:"./src/*.js" ext:".js" dest:"dest" { /*You can access file.cwd, file.base, file.path and file.contents */ }
restore and passthrough will come very soon.
Rename
Rename your destination file or path. You can provide String|Function|Object.
src:"./src/*.js" ext:".js" dest:"dest" rename:"main/text/ciao/goodbye.md"src:"./src/*.js" ext:".js" dest:"dest" { pathdirname += "/ciao"; pathbasename += "-goodbye"; pathextname = ".md" }src:"./src/*.js" ext:".js" dest:"dest" rename:dirname: "main/text/ciao" basename: "aloha" prefix: "bonjour-" suffix: "-hola" extname: ".md"
Wrapper
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:truesrc:"./src/*.js" ext:".js" dest:"dest" preLog:truesrc:"./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
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.
OPTIONALS
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. Defaulttrue
. - name (string) Recommended. Define unique name of gulp task.
- order (Array(string)) Define flow of execution. Like ['log','filter','compress','concat','wrapper'].
Plugins
This package is using below pluging
Task | Plugin | Value Type | Description |
---|---|---|---|
Filter | gulp-filter |
|
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 |
|
object contains two properties name and ext. | |
Replace | gulp-replace |
|
Object can be one of these two objects {target:"", src:""} this will send to gulp-replace and second {buildName:replacement} buildName (string |
Debug | --- | Boolean | true, false |
Wrapper | gulp-wrapper |
|
Each Object has two options header and footer. More Details |
Harmony/ES2015 | --- | Boolean | Set it true if you need ES6 support too. More Details |
Rename | gulp-rename |
|
You can edit the name or edit the path of your destination file. More Details |
Compress |
|
this will use gulp-uglify if ext is .js , gulp-htmlmin if ext is .html and gulp-clean-css if css is .css |
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 aslog
above. - get (function) Just in case if you want to get stream.NOTE it will not effect the stream.
Todo
- Use pums instead of pipe in tasks Reason and package
- Use uglify-es instead of uglify-js-harmony
License
MIT