glupost
Build your gulp tasks from a configuration object.
Usage
Running
gulp start
with a gulpfile.js
// Transforms/plugins.let toc = let contents // Build tasks.let tasks = "md-to-html": src: "src/docs/*.md" rename: extname: ".html" transforms: toc marked watch: true "start": series: "md-to-html" "watch" let options = template = base: "src/" dest: "dist/" // Build the actual tasks.let glupost = moduleexports =
and a file structure
├── src/
│ ├── docs/
│ │ ├── Getting started.md
│ │ ├── API.md
│ │ ├── Guidelines.md
│ │ └── Examples.md
would run start
, that is, md-to-html
and watch
in series, producing
├── dist/
│ ├── docs/
│ │ ├── Getting started.html
│ │ ├── API.html
│ │ ├── Guidelines.html
│ │ └── Examples.html
once initially, and again on every file change.
API
glupost(tasks[, options])
Return an object containing gulp tasks ready for registration.
tasks
» object declaring the tasks, invoked by gulp <task>
.
options.template
» object serving as a base for tasks with .src
.
options.beep
» boolean controlling if a beep sound is played once all watch-triggered tasks execute. false
by default.
options.register
» boolean controlling if tasks are registered to gulp or not. false
by default.
Declaration of a task takes one of the following forms:
// Name of another task. "alias": "another task" // Function. {} "async promise": async {} // Task object. "vinyl stream task": src: "path" dest: "." "wrapped": {} "tasks in series": series: ... "tasks in parallel": parallel: ...
A composition task object accepts one of:
.task
» wrapper around a task, useful for {watch: "path", task: () => {}}
.
.series
» passed to gulp.series(), but also accepts task objects.
.parallel
» passed to gulp.parallel(), but also accepts task objects.
A Vinyl stream task object (and options.template
) accepts:
.src
» string passed to gulp.src() to start the stream or a Vinyl file.
.dest
» passed to gulp.dest() to output the files. Defaults to gulp's working directory.
.base
» passed as base option to gulp.src().
.rename
» passed to gulp-rename prior to writing.
.transforms
» array of transform functions that receive file.contents and file parameters and must return a Vinyl file or its contents directly (as string or buffer), or a promise that resolves with one of those.
// Return string directly. { return contents + "\nCopyright © 2017"} // Return Vinyl file. { let suffix = Buffer filecontents = Buffer return file} // Return promise. { return contents + "\nCopyright © 2017"}
All task objects accept:
.watch
» paths used by gulp.watch() to trigger the task. If set to true
, the task's .src
will be watched. All watchers are invoked by the generated watch task.