rollup-plugin-bundle-stats
v4.21.7
Published
In-depth bundle analyzer for rollup(bundle size, assets, modules, packages)
Readme
rollup-plugin-bundle-stats
Table of Contents
Install
npm install --dev rollup-plugin-bundle-statsor
yarn add --dev rollup-plugin-bundle-statsConfigure
Vite
// vite.config.js
const { bundleStats } = require('rollup-plugin-bundle-stats');
module.exports = {
...,
build: {
rollupOptions: {
output: {
assetFileNames: 'assets/[name].[hash][extname]',
chunkFileNames: 'assets/[name].[hash].js',
entryFileNames: 'assets/[name].[hash].js',
},
},
},
plugins: [
bundleStats()
]
};Rollup
// rollup.config.js
const { bundleStats } = require('rollup-plugin-bundle-stats');
module.exports = {
...,
output: {
assetFileNames: 'assets/[name].[hash][extname]',
chunkFileNames: 'assets/[name].[hash].js',
entryFileNames: 'assets/[name].[hash].js',
},
plugins: [
bundleStats()
]
};Rolldown
// rolldown.config.js
import { defineConfig } from 'rolldown';
import { bundleStats } from 'rollup-plugin-bundle-stats';
export default defineConfig({
...,
output: {
assetFileNames: 'assets/[name].[hash][extname]',
chunkFileNames: 'assets/[name].[hash].js',
entryFileNames: 'assets/[name].[hash].js',
},
plugins: [
bundleStats()
]
});How to configure Vite for better debugging and monitoring
Options
compare- use local saved stats for comparison (defaulttrue).baseline- save current webpack stats as baseline (defaultfalse).baselineFilepath- baseline absolute filepath or relative filepath tooutput.dir(default 'node_modules/.cache/bundle-stats/baseline.json')html- output html report (defaulttrue).json- output json report (defaultfalse).outDir- output directory inside rollup output directoroutput.dir(default'').silent- stop logging info and only log warning and error (defaultfalse).
Compare mode
In compare mode, the metrics are compared against an existing(node_modules/.cache/bundle-stats/baseline.json) rollup stats file(baseline). To generate the baseline webpack stats, set BUNDLE_STATS_BASELINE environmental variable to true or set the plugin baseline option to true:
# Checkout to the branch/tag/commit where you want to generate the baseline
$ git checkout master
# Build your application with BUNDLE_STATS_BASELINE environmental variable
$ BUNDLE_STATS_BASELINE=true npm run build
# Checkout to the working branch/tag/commit
$ git checkout MY_FEATURE_BRANCH
# Build your application
$ npm run buildThe option can be disabled by setting the plugin compare option to false.
Other packages
bundle-stats
CLI to generate bundle stats report.
bundle-stats-webpack-plugin
Webpack plugin to generate bundle stats report for webpack/rspack.
gatsby-plugin-bundle-stats
Gatsby plugin for bundle-stats.
next-plugin-bundle-stats
Next.js plugin for bundle-stats.
Related projects
:cyclone: relative-ci.com
Automated bundle analysis, reviews and monitoring - Quickly identify and fix bundle regressions before shipping to production.
- :crystal_ball: In-depth bundle stats analysis for every build
- :chart_with_upwards_trend: Monitor bundle stats changes and identify opportunities for optimizations
- :bell: Quick feedback with rule based automated review flow, GitHub Pull Request comments, GitHub check reports, or Slack messages
- :wrench: Support for webpack, vite, rspack, rollup, rolldown
- :hammer: Support for all major CI services(CircleCI, GitHub Actions, Gitlab CI, Jenkins, Travis CI)
- :nut_and_bolt: Support for npm, yarn and pnpm; support for monorepos
- :two_hearts: Always free for Open Source
:first_quarter_moon: relative-ci/compare
Standalone web application to compare Webpack/Lighthouse/Browsertime stats.
:zap: bundle-stats-action
Github Action that generates bundle-stats reports.
