TemplateBannerPlugin
Adds the data of a package from package.json
to the top of each generated chunk. (or from any other json
or js
file)
Install
$ yarn add --dev template-banner-webpack-plugin# or $ npm i --save-dev template-banner-webpack-plugin
Usage
Import the plugin module into webpack configuration.
const TemplateBannerPlugin = ;
Then use this plugin with some options.
banner// oroptions
banner: `<filename>: <chunk.name> <chunk.ids> <hash> <chunk.hash>{name} v{version}(c) 2017-{year} {author}Released under the {license}.` { return year: license: ` License` ; };
Then output files has template banner like this.
/*! * input.js: main 0 add0afa23daa62148cae 9761215c7cb0ac58e442806feccefa72 * pretty-checkbox-vue v1.1.2 * (c) 2017-2018 Hamed Ehtesham * Released under the MIT License. */
If you have discovered a 🐜 or have a feature suggestion, feel free to create an issue on Github.
Options
new TemplateBannerPlugin(options);
Name | Type | Default Value | Description |
---|---|---|---|
banner |
String | '{name} v{version}' | the banner template as string, to add to the top of each generated chunk; it will be wrapped in a comment |
raw |
Boolean | false | if true , banner will not be wrapped in a comment |
default |
Object or Function | it is the data to be available in banner via template . any field that exist here would override the fields of json or js file. if it's a function data would be passed to it as an object like this default(data) then this function can manipulate the data and return the new data |
|
path |
String | try to find your current directory or use webpack context to locate your filename and if fails to do that throws error |
|
filename |
String | 'package.json' | file to use for data could be json or js (should exports (module.exports (commonjs2 )) an object or a function that returns an object) |
test |
String or RegExp or Array | if the argument is a string it will be compared with the whole chunk's filename , string elements in array will do the same |
|
include |
String or RegExp or Array | it's not the path; it works just like test |
|
exclude |
String or RegExp or Array | it's not the path; it works just like test but to exclude files instead of including theme |
Template
Use {}
for all data from default
values or json
or js
file
Use <>
for all chunk specific data that is <hash>
, <chunk>
, <filename>
, <basename>
, <query>
Note that you can select json or js exported object properties like this: {repository.url}
or {keywords[0]}
, {keywords[3]}
Note that <chunk>
is an object too that you can use its properties like <chunk.name>
, <chunk.ids[0]>
or <chunk.hash>
for more information about chunk properties see this
Removing all other comments
If you want to remove all other comments, use uglifyjs-webpack-plugin
.
for more information about uglifyjs-webpack-plugin
options see this
$ yarn add --dev uglifyjs-webpack-plugin# or $ npm install --save-dev uglifyjs-webpack-plugin
const UglifyJSPlugin = ;
and also you must use it after UglifyJSPlugin.
// ... plugins: // ...
License
Released under The MIT License. Copyright (c) hamed-ehtesham.