rollup-plugin-minify-es

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

Rollup plugin that minifies the generated ES module bundle using uglify-es, producing a separate minified file with source maps. The current stable version is 1.1.1. This plugin targets ES6+ syntax and uses uglify-es (a fork of UglifyJS2 with harmony support), unlike rollup-plugin-uglify which uses the classic UglifyJS. It allows custom minifier functions and passes through all UglifyJS API options. Note that uglify-es is deprecated in favor of terser, and this plugin may not receive updates.

error Error: Cannot find module 'uglify-es'
cause uglify-es is not installed as a dependency or peer dependency.
fix
Run 'npm install uglify-es' or use a custom minifier via the 'minifier' option.
error TypeError: minify is not a function
cause Incorrect import: using default export as a named export.
fix
Use 'import minify from 'rollup-plugin-minify-es'' instead of '{ minify }'.
error Error: The 'entry' option is deprecated. Use 'input' instead.
cause Using an old Rollup option that is deprecated.
fix
Replace 'entry' with 'input' in the Rollup configuration.
deprecated uglify-es is deprecated in favor of terser. This plugin may not receive updates.
fix Consider using rollup-plugin-terser instead.
gotcha Plugin minifies the entire bundle after generation; does not support incremental builds well.
fix Use Rollup's built-in terser plugin or rollup-plugin-terser for better caching.
breaking The default minifier uglify-es may not support all modern JavaScript features (e.g., optional chaining).
fix Switch to a terser-based plugin or pass a custom minifier function.
npm install rollup-plugin-minify-es
yarn add rollup-plugin-minify-es
pnpm add rollup-plugin-minify-es

Basic Rollup configuration using rollup-plugin-minify-es to minify an ES module bundle.

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

rollup({
  input: 'src/index.js',
  plugins: [
    minify({
      output: {
        comments: false
      }
    })
  ],
  output: {
    file: 'dist/bundle.js',
    format: 'es'
  }
});