gulp-task-builder
v1.0.14
Published
Gulp task builder using a json object.
Downloads
25
Readme
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 = require('gulp-task-builder')
var tasks = {
"task1":{src:"path/to/source/files", dest:"path/to/save"}
}
builder.loadTasks(tasks);
builder.runTasks();
Examples
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"}
}
builder.loadTasks(tasks);
builder.runTasks();
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:true}
{src:"./src/*.html", ext:".html", dest:"dest", compress:{collapseWhitespace: true}}
{src:"./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 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"}
//JSON
//File name will be jsbundle.json which is the task name
task1:{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: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
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", 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"}}
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: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
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 | 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 | gulp-concatgulp-merge-json | StringObject | object contains two properties name and ext. |
| Replace | gulp-replace | Objectarray(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 | --- | Boolean | true, false | Enable gulp-plumber |
| Wrapper | gulp-wrapper | ObjectArray | 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 | StringObjectFunction | You can edit the name or edit the path of your destination file. More Details |
| Compress | gulp-uglifygulp-htmlmingulp-clean-css | BooleanObject | 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