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.

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
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
npm install rollup-plugin-output-size
yarn add rollup-plugin-output-size
pnpm add rollup-plugin-output-size

Shows full configuration with all options and custom handle callback using format utility.

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));
      }
    })
  ]
};