Add a banner to a string. Get one-line/multi-line comment banner based on package.json.
This package isESM only: Node 14+ is needed to use it and it must beimport instead ofrequire.
npminstall bannerjs--saveOne-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 resultsvar 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';exportdeclarefunctiongetPackage(rootPath?:string): PackageJson;exportdeclarefunctiononebanner(option?: PackageJson, rootPath?:string):string;exportdeclarefunctionmultibanner(option?: PackageJson, rootPath?:string):string;bannerjs.multibanner() Multi-line resultsbannerjs.onebanner() One-line resultsvar 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);importbannerfrom'bannerjs';// rollup.config.jsexportdefault{input:'src/main.js',output:{file:'bundle.js',format:'cjs',banner: banner.multibanner()}};Usage: bannerjsPipe Usage: bannerjsOptions:-m--multi Output multi-line results-o--one Output one-line resultsYou can easilly pipe unix commands together like:
cat my-js.js| bannerjs-o| uglify-js> my-js.min.jsNpm 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