Skip to content

jaywcjlove/bannerjs

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
src
 
 
 
 
 
 
 
 
 
 

bannerjs

Build & Deploy Coverage Status Repo Dependents npm version NPM Download

Add a banner to a string. Get one-line/multi-line comment banner based on package.json.

Install

This package is ESM only: Node 14+ is needed to use it and it must be import instead of require.

npm install bannerjs --save

One-line results in:

/*! bannerjs v1.0.8 | MIT (c) 2016 kenny wang <wowohoo@qq.com> | https://github.com/jaywcjlove/bannerjs */

Multi-line results in:

/*!
 * bannerjs v1.0.0
 * Add a banner to a string. Get one-line/multi-line comment banner based on package.json.
 * 
 * Copyright (c) 2016 kenny wang <wowohoo@qq.com>
 * https://github.com/jaywcjlove/bannerjs
 *
 * Licensed under the MIT license.
 */

Structure

The following keys should be defined in package.json:

{
  "name": "bannerjs",
  "version": "1.0.0",
  "description": "Add a banner to a string. Get one-line/multi-line comment banner based on package.json.",
  "license": "MIT",
  "author": {
    "name": "kenny wang"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/jaywcjlove/bannerjs.git"
  }
}

author value can be defined like object or simply string too.

Use

option

  • multibanner(option) Multi-line results
  • onebanner(option) One-line results
var banner = require('bannerjs');
bannerjs.multibanner({
  author:"banner.js",
  homepage:"http://....",
  name:"banner.js",
  license:"MIT",
  version:1.2.3,
  description:"description"
})

API

import { PackageJson } from 'types-package-json';
export * from './cli.js';

export declare function getPackage(rootPath?: string): PackageJson;
export declare function onebanner(option?: PackageJson, rootPath?: string): string;
export declare function multibanner(option?: PackageJson, rootPath?: string): string;

Use in gulp

  • bannerjs.multibanner() Multi-line results
  • bannerjs.onebanner() One-line results
var gulp = require('gulp');
var banner = require('gulp-banner');
var bannerjs = require('bannerjs');

gulp.task('default', function() {
  gulp.src('./test.js')
    .pipe(banner(bannerjs.multibanner()))
    .pipe(gulp.dest('dist/'));
});

Use in Node

var fs = require('fs');
var banner = require('bannerjs');
var uglify = require('uglify-js')

var code = fs.readFileSync('src/test.js', 'utf-8')
var minified = banner.onebanner() + '\n' + uglify.minify(code, {
  fromString: true,
  output: {
    ascii_only: true
  }
}).code;

fs.writeFileSync('src/test.js', minified);

Use in Rollup

import banner from 'bannerjs';

// rollup.config.js
export default {
  input: 'src/main.js',
  output: {
    file: 'bundle.js',
    format: 'cjs',
    banner: banner.multibanner()
  }
};

Command Line

Usage: bannerjs

Pipe Usage: bannerjs

Options:

 -m --multi     Output multi-line results
 -o --one       Output one-line results

You can easilly pipe unix commands together like:

cat my-js.js | bannerjs -o | uglify-js > my-js.min.js

Npm Script

{
  "scripts":{
    "build:min": "cat my-js.js | uglifyjs | bannerjs -o > dist/my-js.min.js",
    "build:dist": "cat my-js.js | bannerjs -m | uglifyjs -b beautify=true --comments 'all' > dist/my-js.js "
  }
}

License

MIT license