Add a banner to a string. Get one-line/multi-line comment banner based on package.json.
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.
*/
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.
multibanner(option)
Multi-line resultsonebanner(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"
})
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;
bannerjs.multibanner()
Multi-line resultsbannerjs.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/'));
});
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);
import banner from 'bannerjs';
// rollup.config.js
export default {
input: 'src/main.js',
output: {
file: 'bundle.js',
format: 'cjs',
banner: banner.multibanner()
}
};
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 "
}
}
MIT license