thickshake
v1.4.0
Published
A library of common gulp tasks
Downloads
7
Readme
Thickshake :shaved_ice:
Thickshake is a system for using common gulptasks. This is the core module.
Installation
Add the following to your gulpfile.js
.
var thickshake = require('thickshake')();
The folder sample
includes the folder structure and config in order to run
gulp
. Please copy these into your local app.
Usage
Three tasks are included that can be run using gulp
, gulp build
and
gulp develop
.
Writing modules
A module should perform a single task. Configurability should be fairly
limited, but definitely allow for configuration of sources and destinations,
reading from the thickshake.getSource('yourmodule')
and
thickshake.getDest('yourmodule')
config variables where possible.
Actions like minifying css and including sourcemaps should be governed by
thickshake.getConfig('debug')
rather than
thickshake.getConfig('styles.minify')
to avoid users having to change a whole
bunch of config to set up a production vs debug build.
Extra config that is really required for basic functionality of the module
(for example, include paths, which are needed but different for every project)
should be accessed by thickshake.getConfig('module.identifier', 'sane default')
.
Reading from configs should be done outside of task scope. If all of the calls
to thickshake.getSource
et al are performed before any tasks are executed,
then fully populated default configuration files can be automatically generated,
saving having to hunt around for missing configuration values.
The whole point of this module is to reduce the amount of boilerplate/setup time, so it's okay to be a little didactic. If a user has a task that really does need that extra config, they can just write a gulp task themselves.
Tasks should add themselves to the thickshake build, develop and watch lists as
appropriate, via thickshake.addBuild
, thickshake.addDevelop
and
thickshake.addWatch
lists respectively. All of the build tasks will be added
as a dependency to gulp build
, while all of the develop
tasks will be
executed (along with the watch
tasks) as part of gulp develop
.