install - docs - why - license
task names can have parameters (like express routes)
var gulp = require('gulp-runtime').create();
gulp.task('build :src :dest', function () {
return gulp.src(this.params.src)
// transform, compress, etc.
.pipe(gulp.dest(this.params.dest));
});or be passed as arguments to the task runner
var gulp = require('gulp-runtime').create();
gulp.task('build', function (done, sources, dest) {
return gulp.src(sources)
// some build step
.pipe(gulp.dest(dest));
});
gulp.task('minify', function (done, sources, dest) {
return gulp.src(sources)
// minify
.pipe(gulp.dest(dest));
});
gulp.task('build min', function (done) {
gulp.series('build', 'minify')('src/**/*.js', 'dest/source.min.js', done);
});functions can be used directly as gulp#4.0 will do
var gulp = require('gulp-runtime').create();
function build (done, sources, dest) {
return gulp.src(sources)
// some build step
.pipe(gulp.dest(dest));
}
function minify (done, sources, dest) {
return gulp.src(sources)
// minify
.pipe(gulp.dest(dest));
}
gulp.task('build min', function (done) {
gulp.series(build, minify)('src/**/*.js', 'dest/source.min.js', done);
});split builds using instances
var styles = require('gulp-runtime').create();
styles.task('less', function (done, sources, dest) {
var less = require('gulp-less');
var options = require('./build/options');
return gulp.src(sources)
.pipe(less(options.less))
.pipe(gulp.dest(dest));
});
styles.task('default', ['less']);
module.exports = styles;create a REPL and continue running tasks after default has ended (this will also improve the performance of next tasks since all modules are loaded already)
var gulp = require('gulp-runtime').create({ repl: true });
gulp.task(':number', function (done) {
setTimeout(done, 100);
});
gulp.task('default', ['one', 'two']);now go to the terminal and do
node gulpfile.jswhich will run a REPL with the tasks defined.
With npm
npm install --save-dev gulp-runtimeI wanted to do a REPL for gulp because it was missing for me and on its own way, is the ultimate define and use as use as you like kind of thing. Of course, then, more and more stuff had to go in and, more importantly, the REPL had to behave in such a way that it could be used mostly like the terminal does (autocompletion, etc.).
So it got out of hand :D.
But well oh well, here we are.