var base = require('base-methods');
var pipeline = require('{%= name %}');
var bfs = require('base-fs');
// create your application and add the plugin
var app = base()
.use(pipeline())
.use(bfs)
// plugins may return a function
app.plugin('a', function() {
return through.obj(function(file, enc, next) {
next(null, file);
});
});
// or a stream
app.plugin('b', through.obj(function(file, enc, next) {
next(null, file);
}));
// use registered plugins
app.src(['foo/*.hbs'])
.pipe(app.pipeline(['a', 'b']))
.pipe(app.dest('site/'))
Array of registered plugin names:
// register plugins
app.plugin('a', function() {});
app.plugin('b', function() {});
// pipeline
app.src(['foo/*.hbs'])
.pipe(app.pipeline(['a', 'b']))
.pipe(app.dest('site/'))
List of registed plugin names:
// register plugins
app.plugin('a', function() {});
app.plugin('b', function() {});
// pipeline
app.src(['foo/*.hbs'])
.pipe(app.pipeline('a', 'b'))
.pipe(app.dest('site/'))
Stacked:
// register plugins
app.plugin('a', function() {});
app.plugin('b', function() {});
app.plugin('c', function() {});
// pipeline
app.src(['foo/*.hbs'])
.pipe(app.pipeline('a'))
.pipe(app.pipeline('b'))
.pipe(app.pipeline('c'))
.pipe(app.dest('site/'))
Functions that return a stream:
app.src(['foo/*.hbs'])
.pipe(app.pipeline(function() {
return through.obj(function(file, enc, next) {
next(null, file);
})
}))
.pipe(app.pipeline(function() {
return through.obj(function(file, enc, next) {
next(null, file);
})
}))
.pipe(app.dest('site/'))
Streams:
In general, it's a best practice for plugins to return a function that returns a stream. This ensures that every time the function is called a new stream is returned.
app.src(['foo/*.hbs'])
.pipe(app.pipeline(through.obj(function(file, enc, next) {
next(null, file);
}))
.pipe(app.pipeline(through.obj(function(file, enc, next) {
next(null, file);
}))
.pipe(app.dest('site/'))