rollup-plugin-prettyuglify v1.0.1
rollup-plugin-prettyuglify 
Rollup plugin to minify generated bundle into the shape of an SVG's paths.
Install
npm i rollup-plugin-prettyuglify -DUsage
import { rollup } from 'rollup';
import prettyuglify from 'rollup-plugin-prettyuglify';
rollup({
entry: 'main.js',
plugins: [
prettyuglify('image.svg')
]
});Options
prettyuglify(file, options, minifier)file - type: string. File with which to shape minified code.
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.
Warning
UglifyJS, which this plugin is based on, does not support the ES2015 module syntax. Thus using this plugin with Rollup's default bundle format ('es') will not work and error out.
To work around this you can tell rollup-plugin-prettyuglify to use the UglifyJS unstable es version by passing its minify function to minify your code.
import { rollup } from 'rollup';
import prettyuglify from 'rollup-plugin-prettyuglify';
import { minify } from 'uglify-es';
rollup({
entry: 'main.js',
plugins: [
prettyuglify('image.svg', {}, minify)
]
});To install the experimental version of UglifyJS:
npm i uglify-es -DExamples
Comments
If you'd like to preserve comments (for licensing for example), then you can specify a function to do this like so:
prettyuglify({
output: {
comments: function(node, comment) {
var text = comment.value;
var type = comment.type;
if (type == "comment2") {
// multiline comment
return /@preserve|@license|@cc_on/i.test(text);
}
}
}
});See UglifyJS documentation for further reference.
Output

License
MIT © Levi Wiseman