Rollup plugin to minify generated bundle. Uses UglifyJS under the hood.
Note: uglify-js is able to transpile only es5 syntax. If you want to transpile es6+ syntax use terser instead
npm i rollup-plugin-uglify -D
import { rollup } from 'rollup';
import { uglify } from 'rollup-plugin-uglify';
rollup({
entry: 'main.js',
plugins: [
uglify()
]
});
uglify(options, minifier)
options
– default: {}
, type: object
. UglifyJS API options
minifier
– default: require('uglify-js').minify
, type: function
. Module to use as a minifier. You can use other versions (or forks) of UglifyJS instead default one.
If you'd like to preserve comments (for licensing for example), then you can specify a function to do this like so:
uglify({
output: {
comments: function (node, comment) {
if (comment.type === "comment2") {
// multiline comment
return /@preserve|@license|@cc_on/i.test(comment.value);
}
return false;
}
}
});
Alternatively, you can also choose to keep all comments (e.g. if a licensing header has already been prepended by a previous rollup plugin):
uglify({
output: {
comments: 'all'
}
});
See UglifyJS documentation for further reference.
MIT © Bogdan Chadkin