gusher
v2.0.8
Published
The streaming build system.
Downloads
7
Maintainers
Readme
What is Gusher?
- Gusher is a smaller streaming build system based off Gulp made to improve performance in building Gulpfiles.
Installation
Installation of Gusher is very simple with NPM
or Yarn
.
npm i -g gusher
yarn global add gusher
Windows Only! Make sure that your system environment variables include a path to your NPM bin folder!
Documentation
Here is a sample of something made with Gusher.
- It still uses Gulp modules!
/* Taken from https://github.com/gulpjs/gulp#documentation */
var gusher = require('gusher');
var less = require('gulp-less');
var babel = require('gulp-babel');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var cleanCSS = require('gulp-clean-css');
var del = require('del');
var paths = {
styles: {
src: 'src/styles/**/*.less',
dest: 'assets/styles/'
},
scripts: {
src: 'src/scripts/**/*.js',
dest: 'assets/scripts/'
}
};
/* Not all tasks need to use streams, a gusherfile is just another node program
* and you can use all packages available on npm, but it must return either a
* Promise, a Stream or take a callback and call it
*/
function clean() {
// You can use multiple globbing patterns as you would with `gusher.src`,
// for example if you are using del 2.0 or above, return its promise
return del([ 'assets' ]);
}
/*
* Define our tasks using plain functions
*/
function styles() {
return gusher.src(paths.styles.src)
.pipe(less())
.pipe(cleanCSS())
// pass in options to the stream
.pipe(rename({
basename: 'main',
suffix: '.min'
}))
.pipe(gusher.dest(paths.styles.dest));
}
function scripts() {
return gusher.src(paths.scripts.src, { sourcemaps: true })
.pipe(babel())
.pipe(uglify())
.pipe(concat('main.min.js'))
.pipe(gusher.dest(paths.scripts.dest));
}
function watch() {
gusher.watch(paths.scripts.src, scripts);
gusher.watch(paths.styles.src, styles);
}
/*
* Specify if tasks run in series or parallel using `gusher.series` and `gusher.parallel`
*/
var build = gusher.series(clean, gusher.parallel(styles, scripts));
/*
* You can use CommonJS `exports` module notation to declare tasks
*/
exports.clean = clean;
exports.styles = styles;
exports.scripts = scripts;
exports.watch = watch;
exports.build = build;
/*
* Define default task that can be called by just running `gusher` from cli
*/
exports.default = build;
Anything listed in the README of Gulp is fully functional in Gusher as of 2019-08-21
.