banners

Reusable banners for Node.js projects.

Usage no npm install needed!

<script type="module">
  import banners from 'https://cdn.skypack.dev/banners';
</script>

README

banners NPM version

Reusable banners for Node.js and Grunt.js projects.

Getting started

npm i banners --save

You may either use the banners as Lo-Dash templates, or as Lo-Dash mixins:

Use as templates

module.exports = function (grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    banner: require('banners').

    concat: {
      scripts: {
        options: {
          banner: '<%= banner.block %>'
        },
        files: {
          'dist/script.js': ['src/script.js']
        }
      }
    }
  });
  ...
};

Use as mixins

Alternatively, you can add the banners as Lo-Dash mixins if you need to override the defaults:

module.exports = function (grunt) {
  // Mix the banners into Grunt's Lodash
  grunt.util._.mixin(require('banners'));

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    concat: {
      scripts: {
        options: {
          // Then use as a mixin
          banner: '<%= _.bannerBlock() %>'
        },
        files: {
          'dist/script.js': ['src/script.js']
        }
      }
    }
  });
  ...
};

Default properties

The included banners will attempt to use the following properties from package.json

  • name
  • version
  • homepage
  • author.name or author
  • licences.type or licence.type or license

Also, unless overridden the copyright year is automatically calculated as the current year.

Usage Examples

mixins examples

Given we have:

{
  "name": "grunt-readme",
  "author": {
    "name": "Jon Schlinkert"
  }
}

If no parameters are passed to the mixin, it will attempt to automatically retrieve the correct values from package.json:

//
banner: '<%= _.bannerBlock() %>'
// => "Jon Schlinkert"

To override these automatic values, you may pass a config object as a paramter:

Override copyright year

//
banner: '<%= _.bannerBlock({year: "2013"}) %>'
// => Copyright (c) 2013 Jon Schlinkert, contributors.

Override author

// Passed directly to the mixin
banner: '<%= _.bannerBlock({author: pkg.name}) %>'
// => "grunt-readme"

// Or as a custom metadata object in the Grunt config
opts: {
  author: 'Jon Schlinkert, Brian Woodward'
},
banner: '<%= _.bannerBlock(opts) %>'
// => "Jon Schlinkert, Brian Woodward"

// Same as previous...
opts: {
  author: pkg.name
},
banner: '<%= _.bannerBlock(pkg.name) %>'
// => "grunt-readme"

Author

Jon Schlinkert

Contributing

Feel free to submit a pull request to add a banner.

License

Copyright (c) 2014 Jon Schlinkert, Brian Woodward, contributors. Released under the MIT license