bannerize v1.1.4
Bannerize 
Add dynamic banner/license comments to files in a build process.
$ npm install -g bannerizeBanner Templates
Banner templates use the EJS templating language. Templates are passed the following properties:
pkg: A representation of the nearestpackage.jsonfile.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 --helpAn example usage might look like:
$ bannerize *.js *.css --banner=foo/bar.ejsAPI
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
bannerA banner file location. Defaults tobanner.ejsin thecwd.cwdOverride thecwdfor all paths passed tobannerize. Relative paths will be relative toprocess.cwd(). Defaults toprocess.cwd().lineBreak(orlineBreaks) 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.jsonAnd 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');
// The paths here are relative to the current working directory. For the sake
// of example, let's say we don't know what it might be; so, we'll use
// __dirname (which is scripts/ in our outlined directory structure above).
//
// We pass in the path to our output file(s), relative to __dirname:
bannerize('../dist/output.min.js', {
// This is the path to our banner template file, relative to __dirname.
banner: 'banner.ejs',
// Finally, we specify the cwd as the directory where this file is
// (i.e. scripts/)
cwd: __dirname
}).
// bannerize returns a Promise which resolves with a list of files. We log
// the list here for debugging.
then((files) => {
console.log('Added banner(s) to ' + files.join(', '));
}, () => {
console.error('Failed adding banner(s)!');
});