boilerplate
Advanced tools
+13
-4
@@ -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; |
+13
-11
| { | ||
| "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": { |
-292
| # boilerplate [](https://www.npmjs.com/package/boilerplate) [](https://npmjs.org/package/boilerplate) [](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._ |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
192
3.78%7963
-57.35%6
20%3
-25%2
100%2
100%0
-100%+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated