Bannerize ![Build Status](https://travis-ci.org/misteroneill/bannerize.svg?branch=master)
Add dynamic banner/license comments to files in a build process.
$ npm install -g bannerize
Banner Templates
Banner templates use the EJS templating language. Templates are passed the following properties:
pkg
: A representation of the nearest package.json
file.date
: A JavaScript Date object.
A simple banner might look something like:
/*! <%= pkg.name %> | <%= pkg.version %>
* (c) <%= date.getFullYear() %> <%= pkg.license %>
*/
And render to:
/*! bannerize | 1.0.0
* (c) 2015 MIT
*/
CLI
bannerize
ships with a CLI command. Its options vary from the programmatic API. To see all its options, use:
$ bannerize --help
An example usage might look like:
$ bannerize *.js *.css --banner=foo/bar.ejs
API
The bannerize
module can be used in your programs. It exports a single function, bannerize
, which takes two arguments:
bannerize(patterns, [options])
pattern
{String|Array}
: A string or array of glob pattern(s) to which to apply the banner.[options]
{Object}
: An object containing optional values.
The return value of bannerize()
is a Promise
that resolves with an array of all the file paths it modified.
Options
-
banner
A banner file location. Defaults to banner.ejs
in the cwd
.
-
cwd
Override the cwd
for all paths passed to bannerize
. Relative paths will be relative to process.cwd()
. Defaults to process.cwd()
.
-
lineBreak
(or lineBreaks
)
Sets the linebreak ('CRLF'
, 'LF'
). Defaults to 'LF'
.
API Example
Let's say you have a project with a structure like this:
├─┬ dist/
│ └── output.min.js
├─┬ scripts/
│ ├── add-banner.js
| └── banner.ejs
└── package.json
And let's say you want scripts/add-banner.js
to add a banner to dist/output.min.js
using scripts/banner.ejs
as a template. You'll need to know the location of the output file and the banner template and the script might look like this:
const bannerize = require('bannerize');
bannerize('../dist/output.min.js', {
banner: 'banner.ejs',
cwd: __dirname
}).
then((files) => {
console.log('Added banner(s) to ' + files.join(', '));
}, () => {
console.error('Failed adding banner(s)!');
});