rollup-plugin-uglify-es

raw JSON →
0.0.1 verified Mon Apr 27 auth: no javascript deprecated

Rollup plugin for minifying ES6+ bundles using uglify-es (deprecated UglifyJS fork). Version 0.0.1, last updated in 2018, no active maintenance. Replaced by rollup-plugin-terser and @rollup/plugin-terser for better ES6+ support. Key differentiator: targeted ES6+ minification, but now obsolete as uglify-es is no longer maintained and has known bugs (e.g., mangling property names incorrectly). Alternatives should use terser instead.

error Error: Could not resolve 'uglify-es'
cause uglify-es is not installed or missing from node_modules.
fix
npm install uglify-es --save-dev
error TypeError: uglify is not a function
cause Incorrect import style - using named import instead of default import.
fix
import uglify from 'rollup-plugin-uglify-es'; instead of import { uglify } from ...
error SyntaxError: Unexpected token: punc (.)
cause uglify-es does not support newer JavaScript syntax (e.g., optional chaining).
fix
Switch to terser (rollup-plugin-terser) which supports modern syntax.
deprecated rollup-plugin-uglify-es is deprecated and no longer maintained.
fix Migrate to rollup-plugin-terser or @rollup/plugin-terser.
breaking uglify-es has known bugs (e.g., property mangling errors) and is not compatible with modern JavaScript (ES2020+).
fix Use terser instead, which is actively maintained and supports modern syntax.
gotcha The plugin does not support source maps out of the box; additional configuration may be needed.
fix Pass sourceMap: true in options if source maps are required.
npm install rollup-plugin-uglify-es
yarn add rollup-plugin-uglify-es
pnpm add rollup-plugin-uglify-es

Minify a Rollup bundle using the deprecated uglify-es plugin with default options.

import { rollup } from 'rollup';
import uglify from 'rollup-plugin-uglify-es';

const bundle = await rollup({
  input: 'src/index.js',
  plugins: [
    uglify()
  ]
});

await bundle.write({ file: 'bundle.min.js', format: 'cjs' });