rollup-plugin-output-size
raw JSON → 2.0.0 verified Mon Apr 27 auth: no javascript
A Rollup plugin that displays output bundle sizes (uncompressed and gzipped) for assets, chunks, and entries. Current stable version is 2.0.0, released 2025, with peer dependency on Rollup ^2.0.0 || ^3.0.0 || ^4.0.0. Ships TypeScript types. Key differentiators: lightweight (zero dependencies since v2.0.0), uses Node.js built-in gzip and util.styleText, provides customization options (bytes, hide, gzip, silent, summary, handle), and exports utility functions (format, summarize). Actively maintained, with breaking changes in v2.0.0 requiring Node >=20.12.0 and removal of deprecated RollupOutputSizeOptions interface.
Common errors
error Error [ERR_REQUIRE_ESM]: require() of ES Module ↓
cause Using CommonJS require() on an ESM-only package v2.0.0
fix
Switch to ESM (import outputSize from 'rollup-plugin-output-size') or use dynamic import()
error TypeError: outputSize is not a function ↓
cause Using default import from CommonJS require but did not destructure .default
fix
const outputSize = require('rollup-plugin-output-size').default;
error TypeError: (0 , plugin_1.default) is not a function ↓
cause Incorrect import of default export when using TypeScript and CommonJS
fix
Use import outputSize from 'rollup-plugin-output-size'
error Cannot find module 'node:util' or 'node:zlib' ↓
cause Node.js version <20.12.0 missing required built-in APIs
fix
Update Node.js to >=20.12.0
Warnings
breaking Requires Node.js >=20.12.0 in v2.0.0 ↓
fix Update Node.js to 20.12.0 or later
deprecated RollupOutputSizeOptions interface removed in v2.0.0 ↓
fix Replace with Options interface (import type { Options } from 'rollup-plugin-output-size')
gotcha CommonJS require returns { default: outputSize } not outputSize directly ↓
fix Use ESM import or destructure: const { default: outputSize } = require('rollup-plugin-output-size')
gotcha Summary total gzip size is sum of individual gzip sizes, not archive-level ↓
fix Use archiver for accurate total gzip size
gotcha Options type not available as runtime value; only as TypeScript type import ↓
fix Import type: import type { Options } from 'rollup-plugin-output-size'
deprecated RollupOutputSizeOptions interface deprecated since v1.4.0 and removed in v2.0.0 ↓
fix Use Options interface
Install
npm install rollup-plugin-output-size yarn add rollup-plugin-output-size pnpm add rollup-plugin-output-size Imports
- outputSize (default) wrong
const outputSize = require('rollup-plugin-output-size')correctimport outputSize from 'rollup-plugin-output-size' - format wrong
const { format } = require('rollup-plugin-output-size'); // works in CJS but preferred ESMcorrectimport { format } from 'rollup-plugin-output-size' - summarize wrong
import summarize from 'rollup-plugin-output-size'correctimport { summarize } from 'rollup-plugin-output-size' - Options wrong
import { Options } from 'rollup-plugin-output-size' // Value not exported at runtimecorrectimport type { Options } from 'rollup-plugin-output-size'
Quickstart
import outputSize from 'rollup-plugin-output-size';
import { format, summarize } from 'rollup-plugin-output-size';
export default {
input: 'src/index.js',
output: { dir: 'dist' },
plugins: [
outputSize({
bytes: true,
gzip: ['chunk', 'entry'],
hide: false,
silent: false,
summary: true,
handle(info) {
console.log(format(info));
}
})
]
};