Rollup plugin to minify generated bundle. Uses UglifyJS under the hood. There are a few improvements over native uglify:
Note: uglify-js is able to transpile only es5 syntax. If you want to transpile es6+ syntax use terser instead
Note: this package requires rollup@0.66 and higher
Generates source maps and passes them to rollup. Defaults to
Amount of workers to spawn. Defaults to the number of CPUs minus 1.
Alternatively, you can also choose to keep all comments (e.g. if a licensing header has already been prepended by a previous rollup plugin):
See UglifyJS documentation for further reference.
- 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
Install
yarn add rollup-plugin-uglify --dev
Note: this package requires rollup@0.66 and higher
Usage
import { rollup } from "rollup";
import { uglify } from "rollup-plugin-uglify";
rollup({
input: "main.js",
plugins: [uglify()]
});
Options
uglify(options);
options
- uglifyJS API optionsoptions.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.
Examples
Comments
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.
License
MIT © Bogdan Chadkin