base-boilerplate v0.2.1
base-boilerplate
Plugin that adds support for generating project files from a declarative boilerplate configuration.
Install
Install with npm:
$ npm install --save base-boilerplate
Usage
var boilerplate = require('base-boilerplate');
var App = require('base-app');
var app = new App();
app.use(boilerplate());
Example
Download h5bp
To run the example, first you'll need to git clone html5-boilerplate with the following command:
$ git clone https://github.com/h5bp/html5-boilerplate.git vendor/h5bp
Configuration
The following examples returns a normalized configuration object that includes every file in the html5-boilerplate project, organized exactly the way the project itself is organized.
var Boilerplate = require('boilerplate');
var boilerplate = new Boilerplate({
options: {
cwd: 'vendor/h5bp/dist',
destBase: 'src'
},
site: {
root: {src: ['{.*,*.*}'], dest: 'root'},
css: {src: ['css/*.css'], dest: 'assets/css'},
js: {src: ['js/**/*.js'], dest: 'assets/js'},
doc: {src: ['doc/*.md'], dest: 'docs'}
},
});
Generate
Pass the configuration to the .boilerplate
or .boilerplateStream
method to "build" the boilerplate. In this example we're not doing any additional processing, so the source files will simply be copied to the specified destination directories.
// stream
app.boilerplateStream(boilerplate)
.on('end', function() {
console.log('done');
});
// async callback
app.boilerplate(boilerplate, function(err) {
if (err) return console.error(err);
console.log('done');
});
API
.boilerplate
Get boilerplate name
from app.boilerplates
, or set boilerplate name
with the given config
.
Params
name
{String|Object|Function}config
{Object|Fucntion}returns
{Object}: Returns the app instance when setting a boilerplate, or the boilerplate instance when getting a boilerplate.
Example
app.boilerplate('foo', {
docs: {
options: {},
files: {
src: ['*'],
dest: 'foo'
}
}
});
// or
var boilerplate = app.boilerplate('foo');
Params
name
{String}config
{Object|Function}
Example
app.addBoilerplate('foo', {
docs: {
options: {},
files: {
src: ['*'],
dest: 'foo'
}
}
});
Params
name
{String}options
{Object}
Example
var boilerplate = app.getBoilerplate('foo');
// or create an instance of `Boilerplate` using the given object
var boilerplate = app.getBoilerplate({
docs: {
options: {},
files: {
src: ['*'],
dest: 'foo'
}
}
});
`.isBoilerplate
Returns true if the given value is a valid Boilerplate.
Params
val
{any}returns
{Boolean}
Example
isBoilerplate('a');
//=> false
isBoilerplate({});
//=> false
isBoilerplate({ files: [] })
//=> false
isBoilerplate(new Boilerplate({ src: ['*.js'] }))
//=> true
Boilerplate
Get or set the Boilerplate
constructor. Exposed as a getter/setter to allow it to be customized before or after instantiation.
Example
// set
app.Boilerplate = function MyBoilerplateCtor() {};
// get
var scaffold = new app.Boilerplate();
About
Related projects
- base-generators: Adds project-generator support to your
base
application. | homepage - base-scaffold: Base plugin that adds support for generating files from a declarative scaffold configuration. | homepage
- base-task: base plugin that provides a very thin wrapper around https://github.com/doowb/composer for adding task methods to… more | homepage
- base: base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on July 21, 2016.