Package Exports
- wrapper-webpack-plugin
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (wrapper-webpack-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
#A webpack plugin that wraps output files (chunks) with custom text or code.
Installation
Install locally using npm:npm i wrapper-webpack-plugin
Usage
var WrapperPlugin = require('wrapper-webpack-plugin');
The WrapperPlugin
class has a single parameter, an object with a header
and/or footer
properties. Header text will
be prepended to the output file, footer text will be appended. These can be either a string or a function. A string
will simply be a appended/prepended to the file output. A function is expected to return a string, and will receive the
name of the output file as an argument.
API
function WrapperPlugin({
header: string | function,
footer: string | function
})
Example configuration #1
Wraps bundles in a self invoking function and enables strict mode:
var WrapperPlugin = require('wrapper-webpack-plugin');
module.exports = {
// other webpack config here
plugins: [
// strict mode for the whole bundle
new WrapperPlugin({
header: '(function () { "use strict";\n',
footer: '\n})();'
})
]
};
Example configuration #2
Prepends bundle with a doc comment:
var WrapperPlugin = require('wrapper-webpack-plugin');
module.exports = {
// other webpack config here
plugins: [
new WrapperPlugin({
header: function (fileName) {
return '/*! file: ' + fileName + ', created by dev123 */\n';
}
})
]
};
Example configuration #3
Keeping header in a separate file:
file: header.js
/*!
* my awesome app!
*/
file: webpack.config
var fs = require('fs');
var WrapperPlugin = require('wrapper-webpack-plugin');
var headerDoc = fs.readFileSync('./header.js', 'utf8');
module.exports = {
// other webpack config here
plugins: [
new WrapperPlugin({
header: headerDoc
})
]
};
Example configuration #4
A slightly more complex example using lodash
templates:
var WrapperPlugin = require('wrapper-webpack-plugin');
var template = require('lodash.template');
var pkg = require('./package.json');
var tpl = '/*! <%= name %> v<%= version %> | <%= author %> */\n';
module.exports = {
// other webpack config here
plugins: [
new WrapperPlugin({
header: function () {
return template(tpl)(pkg);
}
})
]
};
Compatibility with other plugins
This plugin should play nicely with most other plugins.
E.g. adding the webpack.optimize.UglifyJsPlugin
plugin to the plugins array after the WrapperPlugin
will result in
the wrapper text also being minified.