Rollup plugin to minify generated bundle. Uses UglifyJS under the hood. There are a few improvements over native uglify:
- uglify is run in worker for every chunk
- errors are displayed with babel code frame
Note: uglify-js is able to transpile only es5 syntax. If you want to transpile es6+ syntax use terser instead
yarn add rollup-plugin-uglify --dev
Note: this package requires rollup@0.66 and higher
import { rollup } from "rollup";
import { uglify } from "rollup-plugin-uglify";
rollup({
input: "main.js",
plugins: [uglify()]
});
uglify(options);
options
- uglifyJS API options
options.sourcemap: boolean
Generates source maps and passes them to rollup. Defaults to true
.
options.numWorkers: number
Amount of workers to spawn. Defaults to the number of CPUs minus 1.
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