react-native-bundle-visualizer

March 19, 2026 ยท View on GitHub

react-native-bundle-visualizer on npm react-native-bundle-visualizer downloads react-native-bundle-visualizer install size CI status

See what's inside your react-native bundle ๐Ÿ“ฆ

bundle-visualizer-animation

Uses the awesome source-map-explorer to visualize the output of the Metro bundler.

Purpose

Sometimes, importing a single JavaScript library can drastically increase your bundle size. This package helps you to identify such a library, so you can keep the bundle size low and loading times fast.

Usage

Using npx is the recommended way to run the visualizer

# React Native 0.72+
npx react-native-bundle-visualizer@latest
# or Expo SDK 50+
npx react-native-bundle-visualizer@latest --expo

Or you can install as a dev-dependency

yarn add --dev react-native-bundle-visualizer
# or npm
npm install --save-dev react-native-bundle-visualizer

To run the local version of visualizer, use the following command:

npx react-native-bundle-visualizer # if installed by yarn or npm
yarn run react-native-bundle-visualizer # if installed by Yarn

Command line arguments

All command-line arguments are optional. By default a production build will be created for the ios platform.

OptionDescriptionExample
platformPlatform to build (default is ios)--platform ios
devDev or production build (default is false)--dev false
entry-fileEntry-file (when omitted tries to auto-resolve it)--entry-file ./index.ios.js
bundle-outputOutput bundle-file (default is tmp)--bundle-output ./myapp.bundle
formatOutput format html, json or tsv (default is html) (see source-map-explorer options)--format json
only-mappedExclude "unmapped" bytes from the output (default is false). This will result in total counts less than the file size.--only-mapped
verboseDumps additional output to the console (default is false)--verbose
reset-cacheRemoves cached react-native files (default is false)--reset-cache
--expoSet this to true/ false based on whether using expo or not. For eg, set --expo true when using expo. Not required to pass this for react-native cli. (default is false)--expo false
--border-checksPass the same flag to the underlying source-map-explorer to enable invalid mapping column/line checks. (default is false, no check)--no-border-checks or --border-checks

Common questions

1. What version of React Native and Expo is supported?

See the version compatibility table below.

2. What does [unmapped] represent?

[unmapped] is code in a final bundle without mapping to original source code (usually generated by bundlers: Webpack, Metro, Babel)

You can open your source maps online and check it

See example (red borders is unmapped code):

3. What alternatives I can use to inspect my bundle?

See the similar projects section below for alternatives to this package.

4. InvalidMappingColumn error

example: Your source map refers to generated column Infinity on line 2, but the source only contains 2075 column(s) on that line

if you faced this error, try to run the visualizer with --no-border-checks flag to disable invalid mapping column/line checks.

Similar projects

You can use then following alternatives:

Version compatibility

VersionComments
4.xCompatible with React Native 0.72+ or Expo SDK 50+ (Node.js 20+)
3.xCompatible with React-Native CLI bootstrapped projects and Expo SDK 41 or higher.
2.xCompatible with React-Native CLI bootstrapped projects and Expo SDK 40 or earlier.
1.xUses the Haul bundler instead instead of the Metro output.

License

MIT