Rollup plugin to minify or clean up generated bundles using esbuild.
Simpler than rollup-plugin-esbuild and rollup-plugin-esbuild-transform, focusing only on minification of the bundled JavaScript output. Faster than @rollup/plugin-terser. See also benchmark results of various minifiers.
import { minify } from 'rollup-plugin-esbuild-minify'
export default {
plugins: [minify()]
// the rest of the configuration
}
Make sure that you use Node.js 14 or newer and Rollup 2 or newer. Use your favourite package manager - NPM, PNPM or Yarn:
npm i -D rollup-plugin-esbuild-minify
pnpm i -D rollup-plugin-esbuild-minify
yarn add -D rollup-plugin-esbuild-minify
Create a rollup.config.js
configuration file and import the plugin:
import { minify } from 'rollup-plugin-esbuild-minify'
export default {
input: 'src/index.js',
output: { file: 'dist/main.js', format: 'iife', sourcemap: true },
plugins: [
minify({ logLevel: 'debug', logLimit: 100 })
]
}
Then call rollup
either via the command-line or programmatically.
The following options can be passed in an object to the plugin function to change the default values.
Type: 'silent' | 'error' | 'warning' | 'info' | 'debug' | 'verbose'
Default: 'warning'
Controls the number and detail of progress messages logged on the console.
See also the original documentation.
Type: Integer
Default: 10
Maximum number of logged messages. If zero (0
) is provided, all messages will be logged.
See also the original documentation.
Type: 'none' | 'inline' | 'eof' | 'linked' | 'external'
Default: 'none'
Allows including or extracting legal comments. A "legal comment" is considered to be any statement-level comment that contains @license
or @preserve
or that starts with //!
or /*!
.
See also the original documentation.
Type: Boolean
Default: true
Allows disabling the minification. The code will be pretty-printed instead. It can be used to clean up the code.
See also the original documentation.
In lieu of a formal styleguide, take care to maintain the existing coding style. Lint and test your code.
Copyright (C) 2022-2024 Ferdinand Prantl
Licensed under the MIT License.