An open API service indexing awesome lists of open source software.

https://github.com/stringparser/gulp-runtime

an alternate interface to vinyl-fs
https://github.com/stringparser/gulp-runtime

Last synced: 9 months ago
JSON representation

an alternate interface to vinyl-fs

Awesome Lists containing this project

README

          

## gulp-runtime [![NPM version][badge-version]][npm] [![downloads][badge-downloads]][npm]

[![build][badge-build]][travis-build]

![image](https://cloud.githubusercontent.com/assets/7457705/19326735/06d81c7e-90cc-11e6-9968-7ae3631326c3.png)

[documentation](docs/README.md) -
[install](#install) -
[setup](docs/README.md#setup) -
[why](#why)

### features

- [gulp API and more](docs/API.md)
- [customizable logging](docs/logging.md)
- [REPL with autocomplete](docs/REPL.md)
- [Tasks :names with :parameters](docs/task-parameters.md)
- [pass arguments from the task runner](docs/task-arguments.md)

### samples

#### CLI as tasks

```js
var gulp = require('gulp-runtime').create();

gulp.task('default', ['--tasks', '--version']);
```

#### task :parameters

```js
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));
});

gulp.task('default',
gulp.parallel('build src/**/*.js build')
);
```

#### passing arguments

```js
var gulp = require('gulp-runtime').create();

gulp.task('read src', function (callback, src, dest) {
dest = path.join(dest, new Date().toISOString());
console.log('from', src, 'to', dest);

var stream = gulp.src(src);

callback(null, stream, dest);
});

gulp.task('write', function (done, stream, dest) {
return stream.pipe(gulp.dest(dest));
});

// the default takes any arguments after '--' from the terminal
gulp.task('default',
gulp.series('read src', 'write')
);
```

write

```js
node gulplfile.js -- src/**/*.js build
```

and arguments after `--` will be passed to the `default` task.

#### functions as tasks

Just as gulp#4.0

```js
var gulp = require('gulp-runtime').create();

function build (done, src, dest) {
console.log('from', src, 'to', dest);
return gulp.src(src)
// some build step
.pipe(gulp.dest(dest));
}

function minify (done, src, dest) {
return gulp.src(src)
// minify
.pipe(gulp.dest(dest));
}

gulp.task('default',
gulp.series(build, minify)
);
```

#### split builds in instances

```js
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']);

exports = module.exports = styles;
```

#### a REPL after `default` has finished

```js
var gulp = require('gulp-runtime').create({ repl: true });

gulp.task(':number', function (done) {
setTimeout(done, 100);
});

gulp.task('default', ['one', 'two']);
```

go to the terminal and do

```sh
node gulpfile.js
```

which will run a REPL with the tasks defined.

### install

With [npm][npm]

```sh
npm install --save-dev gulp-runtime
```

### why

Soon after I started to use `gulp` it came to mind

> I want a REPL for this

Mainly because a REPL is the closest to `define and use as you like`. If that was possible then writing task names in this REPL will run them just as doing the same from the command line.

Then I realized that what I really liked from `gulp` is the way you can bundle and compose async functions and how its this done under the hood. For that I had to try to do it by myself.

The above has lead to [gulp-repl][gulp-repl], [parth][parth], [runtime][runtime] and finally [gulp-runtime][npm].

So yeah, it got out of hand :D.

But well oh well, here we are.

### license

[![License][badge-license]][license]

[npm]: http://npmjs.com/gulp-runtime
[parth]: http://npmjs.com/parth
[license]: http://opensource.org/licenses/MIT
[vinylFs]: http://npmjs.com/vinyl-fs
[runtime]: http://github.com/stringparser/runtime
[gulp-repl]: http://github.com/stringparser/gulp-repl
[travis-build]: http://travis-ci.org/stringparser/gulp-runtime/builds

[badge-build]: http://img.shields.io/travis/stringparser/gulp-runtime/master.svg?style=flat-square
[badge-version]: http://img.shields.io/npm/v/gulp-runtime.svg?style=flat-square
[badge-license]: http://img.shields.io/npm/l/gulp-runtime.svg?style=flat-square
[badge-downloads]: http://img.shields.io/npm/dm/gulp-runtime.svg?style=flat-square