Loader for Template, for loading files onto a custom view collection inside a vinyl plugin.
npm i init-file-loader --save
Register the loader
Register init-file-loader as a custom loader:
app.loader('file', [require('init-file-loader')]);
app is used as a placeholder for Verb, Assemble, Generate, or any application based on Template.
Use the loader
This is used in the built-in init plugin in Assemble and Verb.
.getTask() method is used to get the name (id) of the currently running task..create() method uses the id to create a custom template type for that taskfile loader is assigned to the template type. This basically means that the file loader will be called on every file that is loaded.Example usage in a plugin
var through = require('through2');
module.exports = function myPlugin() {
var app = this;
var id = this.getTask();
// create a template type for vinyl files and assign the loader
if (!app.hasOwnProperty(id)) {
// `id` is something like `task_foo`
app.create(id, ['file']);
}
return through.obj(function (file, enc, cb) {
// Here, we call the method we created above, which would
// be something like `app.task_foo()`. This is the same exact
// thing that `assemble.page()` does, or `verb.docs()`.
//
// Instead of `pages` or `docs`, the loader we're using will
// convert the vinyl file to a template and add it to the
// `task_foo` collection.
app[id](file);
cb();
}, function (cb) {
app.pushToStream(id, this);
cb();
});
};
Install dev dependencies:
npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue
Jon Schlinkert
github/jonschlinkert twitter/jonschlinkert
Copyright (c) 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb-cli on April 29, 2015.