/rollup-plugin-uglify

Rollup plugin to minify generated bundle

Primary LanguageJavaScriptMIT LicenseMIT

rollup-plugin-uglify Travis Build Status

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

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 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.

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