Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

boilerplate

Package Overview
Dependencies
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boilerplate - npm Package Compare versions

Comparing version
0.4.2
to
0.5.0
+13
-4
index.js

@@ -6,4 +6,5 @@ 'use strict';

var Target = require('expand-target');
var plugins = require('base-plugins');
var Scaffold = require('scaffold');
var use = require('use');
var Base = require('base');

@@ -33,4 +34,5 @@ /**

utils.is(this, 'boilerplate');
use(this);
Base.call(this, {}, options);
this.is('Boilerplate');
this.use(plugins());

@@ -50,2 +52,8 @@ define(this, 'count', 0);

/**
* Inherit Base
*/
Base.extend(Boilerplate);
/**
* Static method, returns `true` if the given value is an

@@ -171,5 +179,6 @@ * instance of `Boilerplate` or appears to be a valid `boilerplate`

define(scaffold, 'name', name);
this.run(scaffold);
utils.run(this, 'boilerplate', scaffold);
scaffold.addTargets(boilerplate);
scaffold.on('target', this.emit.bind(this, 'target'));

@@ -176,0 +185,0 @@ this.scaffolds[name] = scaffold;

{
"name": "boilerplate",
"description": "Tools and conventions for authoring and publishing boilerplates that can be generated by any build system or generator.",
"version": "0.4.2",
"homepage": "http://boilerplates.io",
"version": "0.5.0",
"homepage": "https://github.com/jonschlinkert/boilerplate",
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",

@@ -23,7 +23,8 @@ "repository": "jonschlinkert/boilerplate",

"dependencies": {
"base": "^0.11.0",
"base-plugins": "^0.4.13",
"define-property": "^0.2.5",
"expand-target": "^0.5.3",
"expand-utils": "^0.1.4",
"scaffold": "^0.2.6",
"use": "^2.0.0"
"expand-target": "^0.6.3",
"expand-utils": "^0.2.1",
"scaffold": "^0.2.7"
},

@@ -92,10 +93,11 @@ "devDependencies": {

"reflinks": [
"assemble",
"broccoli",
"grunt",
"guide",
"gulp",
"grunt",
"assemble",
"metalsmith",
"verb",
"yeoman",
"guide",
"broccoli",
"verb"
"verb-readme-generator"
],

@@ -102,0 +104,0 @@ "lint": {

# boilerplate [![NPM version](https://img.shields.io/npm/v/boilerplate.svg?style=flat)](https://www.npmjs.com/package/boilerplate) [![NPM downloads](https://img.shields.io/npm/dm/boilerplate.svg?style=flat)](https://npmjs.org/package/boilerplate) [![Build Status](https://img.shields.io/travis/jonschlinkert/boilerplate.svg?style=flat)](https://travis-ci.org/jonschlinkert/boilerplate)
Tools and conventions for authoring and publishing boilerplates that can be generated by any build system or generator.
## Install
Install with [npm](https://www.npmjs.com/):
```sh
$ npm install boilerplate --save
```
Welcome to boilerplate! Here you'll find both the tools and conventions for creating project boilerplates.
**What does this do?**
1. Makes it easy to create and publish new projects from boilerplates that have reusable [scaffolds][scaffold], templates, styles, themes, data etc.
2. To uncouple these "non-moving-parts" from any particular build system or generator, so we can easily generate new projects by simply passing the boilerplate config object to your build system or project generator of choice!
**Example**
In the following example, we define:
* **scaffolds** for our marketing and developer sites
* **targets** inside each scaffold (`site` and `blog`)
* **files** configurations inside each "site" and "blog" target
The configuration is similar to how [grunt](http://gruntjs.com/) tasks would be defined.
```js
var boilerplate = require('boilerplate');
boilerplate({
marketing: {
site: {
src: 'templates/mktg/*.hbs',
dest: 'site/'
},
blog: {
src: 'content/blog/*.md',
dest: 'site/blog/'
}
},
developer: {
site: {
src: 'templates/dev/*.hbs',
dest: 'site/developer'
},
blog: {
src: 'content/dev/blog/*.md',
dest: 'site/developer/blog/'
}
}
});
```
The `Boilerplate` library "expands" this configuration into a normalized object that can easily be passed to [gulp](http://gulpjs.com), [grunt](http://gruntjs.com/), [assemble](https://github.com/assemble/assemble), [metalsmith](https://github.com/segmentio/metalsmith), or even [yeoman](http://yeoman.io), for scaffolding out various parts of a blog, website, web application or whatever you think a boilerplate might be useful for!
## Table of contents
## html5-boilerplate example
Just to show how easy it is to convert an existing project into a `Boilerplate` project using the most popular boilerplate of them all: [html5-boilerplate](https://github.com/h5bp/html5-boilerplate).
_(Get hands-on with the [h5bp recipe](./recipes/h5bp))_
**Install h5bp**
First, install `boilerplate` and [html5-boilerplate](https://github.com/h5bp/html5-boilerplate):
```sh
$ npm i boilerplate && git clone https://github.com/h5bp/html5-boilerplate.git vendor/h5bp
```
**Define the boilerplate**
The following examples returns a normalized configuration object for every file in the [html5-boilerplate](https://github.com/h5bp/html5-boilerplate) project, organized exactly the way the project itself is organized.
```js
var Boilerplate = require('boilerplate');
var h5bp = new Boilerplate({
options: {
cwd: 'vendor/h5bp/dist'
},
root: {src: ['{.*,*.*}'], dest: 'src/'},
css: {src: ['css/*.css'], dest: 'src/'},
doc: {src: ['doc/*.md'], dest: 'src/'},
js: {src: ['js/**/*.js'], dest: 'src/'}
});
console.log(h5bp);
```
Results in the following object:
```js
{
options: {
cwd: 'vendor/h5bp/dist'
},
config: {},
targets: {
root: {
options: {
cwd: 'vendor/h5bp/dist'
},
files: [
{
src: [
'vendor/h5bp/dist/.DS_Store',
'vendor/h5bp/dist/.editorconfig',
'vendor/h5bp/dist/.gitattributes',
'vendor/h5bp/dist/.gitignore',
'vendor/h5bp/dist/.htaccess',
'vendor/h5bp/dist/404.html',
'vendor/h5bp/dist/apple-touch-icon.png',
'vendor/h5bp/dist/browserconfig.xml',
'vendor/h5bp/dist/crossdomain.xml',
'vendor/h5bp/dist/favicon.ico',
'vendor/h5bp/dist/humans.txt',
'vendor/h5bp/dist/index.html',
'vendor/h5bp/dist/LICENSE.txt',
'vendor/h5bp/dist/robots.txt',
'vendor/h5bp/dist/tile-wide.png',
'vendor/h5bp/dist/tile.png'
],
dest: 'src/',
options: {
cwd: 'vendor/h5bp/dist'
},
name: 'scaffold'
}
]
},
css: {
options: {
cwd: 'vendor/h5bp/dist'
},
files: [
{
src: [
'vendor/h5bp/dist/css/main.css',
'vendor/h5bp/dist/css/normalize.css'
],
dest: 'src/',
options: {
cwd: 'vendor/h5bp/dist'
},
name: 'scaffold'
}
]
},
doc: {
options: {
cwd: 'vendor/h5bp/dist'
},
files: [
{
src: [
'vendor/h5bp/dist/doc/css.md',
'vendor/h5bp/dist/doc/extend.md',
'vendor/h5bp/dist/doc/faq.md',
'vendor/h5bp/dist/doc/html.md',
'vendor/h5bp/dist/doc/js.md',
'vendor/h5bp/dist/doc/misc.md',
'vendor/h5bp/dist/doc/TOC.md',
'vendor/h5bp/dist/doc/usage.md'
],
dest: 'src/',
options: {
cwd: 'vendor/h5bp/dist'
},
name: 'scaffold'
}
]
},
js: {
options: {
cwd: 'vendor/h5bp/dist'
},
files: [
{
src: [
'vendor/h5bp/dist/js/main.js',
'vendor/h5bp/dist/js/plugins.js',
'vendor/h5bp/dist/js/vendor/jquery-1.11.3.min.js',
'vendor/h5bp/dist/js/vendor/modernizr-2.8.3.min.js'
],
dest: 'src/',
options: {
cwd: 'vendor/h5bp/dist'
},
name: 'scaffold'
}
]
}
}
}
```
## About
**What is a boilerplate?**
A boilerplate is a project with generic, reusable code, files or content that is intended to be used as a starting point for creating new projects.
**What does this project provide?**
* [opinionated conventions](./docs/terminology.md) for defining and organizing project boilerplates
* [API](#api) for actually creating boilerplates
* [documentation](./docs/getting-started.md) and [guide](./docs/guide.md) to help you get started with [authoring](docs/authoring.md) your own boilerplates
* [website](https://github.com/jonschlinkert/boilerplate) for discovering boilerplates created by the community
**What does this NOT provide?**
Workflows and tools for actually generating new projects from a boilerplate. This is a job much better suited for build systems like [assemble](https://github.com/assemble/assemble), [gulp](http://gulpjs.com), [grunt](http://gruntjs.com/), [broccoli](https://github.com/broccolijs/broccoli), and [yeoman](http://yeoman.io).
If you publish a library that works with Boilerplate, please [let us know about it](https://github.com/boilerplates/boilerplates/issues/new?title=boilerplate-%5Bname%20here%5D&body=I%20created%20a%20new%20boilerplate%3A%0A%0A*%20homepage%3A%20%5Bproject%20url%5D%20%0A*%20description%3A%20%5Bboilerplate%20description%5D)!
### Comparison table
The following table describes the difference between boilerplates, scaffolds and templates.
| **type** | **description** |
| --- | --- |
| [template](https://github.com/jonschlinkert/templates) | Resuable file, code or content which contains "placeholder" values that will eventually be replaced with real values by a rendering (template) engine |
| [scaffold](https://github.com/jonschlinkert/scaffold) | Consists of one or more templates or source files and serves as a "temporary support structure" that may be used to initialize a new project, or to provide ad-hoc "components" throughout the duration of a project. |
| [boilerplate](#boilerplate) | Boilerplates consist of all of the necessary files required to initialize a complete project. |
## Test coverage
As of May 11, 2016:
```
Statements : 100% (40/40)
Branches : 100% (24/24)
Functions : 100% (4/4)
Lines : 100% (39/39)
```
## Related projects
You might also be interested in these projects:
* [assemble](https://www.npmjs.com/package/assemble): Assemble is a powerful, extendable and easy to use static site generator for node.js. Used… [more](https://www.npmjs.com/package/assemble) | [homepage](https://github.com/assemble/assemble)
* [boilerplate](https://www.npmjs.com/package/boilerplate): Tools and conventions for authoring and publishing boilerplates that can be generated by any build… [more](https://www.npmjs.com/package/boilerplate) | [homepage](http://boilerplates.io)
* [generate](https://www.npmjs.com/package/generate): Fast, composable, highly extendable project generator with a user-friendly and expressive API. | [homepage](https://github.com/generate/generate)
* [scaffold](https://www.npmjs.com/package/scaffold): Conventions and API for creating declarative configuration objects for project scaffolds - similar in format… [more](https://www.npmjs.com/package/scaffold) | [homepage](https://github.com/jonschlinkert/scaffold)
* [templates](https://www.npmjs.com/package/templates): System for creating and managing template collections, and rendering templates with any node.js template engine.… [more](https://www.npmjs.com/package/templates) | [homepage](https://github.com/jonschlinkert/templates)
* [update](https://www.npmjs.com/package/update): Easily keep anything in your project up-to-date by installing the updaters you want to use… [more](https://www.npmjs.com/package/update) | [homepage](https://github.com/update/update)
* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://www.npmjs.com/package/verb) | [homepage](https://github.com/verbose/verb)
## Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/boilerplate/issues/new).
## Building docs
Generate readme and API documentation with [verb](https://github.com/verbose/verb):
```sh
$ npm install verb && npm run docs
```
Or, if [verb](https://github.com/verbose/verb) is installed globally:
```sh
$ verb
```
## Running tests
Install dev dependencies:
```sh
$ npm install -d && npm test
```
## Author
**Jon Schlinkert**
* [github/jonschlinkert](https://github.com/jonschlinkert)
* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
## License
Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
Released under the [MIT license](https://github.com/jonschlinkert/boilerplate/blob/master/LICENSE).
***
_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on May 11, 2016._