base-boilerplate

0.2.1 • Public • Published

base-boilerplate NPM version NPM downloads Build Status

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

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.

Package Sidebar

Install

npm i base-boilerplate

Weekly Downloads

0

Version

0.2.1

License

MIT

Last publish

Collaborators

  • jonschlinkert