NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2634 most downloaded on npm
🚇 The JavaScript bundler for React Native.
Last release 21 days ago
13 Sep 2026
Release timing varies
gaps range from 9 days to 5 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
190 releases · first in 2011
[Security]: Bump ws package to 1.1.5 due to vulnerability issues (more info).
metro-react-native-babel-transformer package and remove reactNativeTransformer.js file from the metro package (more info: 1, 2).[Feature]: Add Yarn PnP resolver (more info).
One column per quarter.
[Improvement]: Optimizations to the Delta Client (more info).
[Feature]: Add custom serializer (#309).
entryFile is no longer assumed to end with .js extension (#310).publicPath to enable serving assets from different locations (#299).[Feature]: Add Source map support for HMR updates (more info).
*v0.48.2-v0.48.3 introduced breaking changes when upgrading jest-haste-map that caused an issue on React Native (more info)*.
Nothing published for this version
[Fix]: Do not add "use strict;" to non ES6 modules (more info).
"use strict;" to non ES6 modules (more info).[Breaking]: Upgrade jest-haste-map to v24.0.0-alpha.2. Metro no longer makes modules with @providesModule annotations global by default (more info).
jest-haste-map to v24.0.0-alpha.2. Metro no longer makes modules with @providesModule annotations global by default (more info)._dependencyMap[n] into the corresponding integer to reduce bundle size on RAM bundles (more info).maxWorkers=1 and creating different instances of Metro in the same process.[Improvement]: Enable babel-runtime by default in react-native-babel-preset (#285).
constantFoldingPlugin (#281).[Breaking]: Tweak the minifiers API to make the options configurable. Now the minify() method accepts an object instead of several params (more info).
minify() method accepts an object instead of several params (more info).minifierConfig config param to enable passing custom options to the minifier (more info).enableBabelRuntime config param to select whether the @babel/runtime plugin is enabled.[Improvement]: Ignore babel.config.js files in addition to .babelrc (#276).
babel.config.js files in addition to .babelrc (#276).global before window.enableBabelRCLookup config param is now correctly taken into account.[Breaking]: Remove the absolute path of files as an argument of babelTransformerPath (more info).
babelTransformerPath (more info).transformerPath module (more info).module.id param to production bundles (more info).transformerPath before attempting to read its contents (#268).[Breaking]: Use babel runtime instead of relying on global babelHelpers on the React Native transformer (#198).
metro-minify-terser as an alternative minifier (#256)..tsx files correctly (#263).[Improvement]: Ensure that jsonvalue exists in resolver.sourceExts (#250).
jsonvalue exists in resolver.sourceExts (#250)."use strict" when transforming JS modules.[Fix]: Add @babel/plugin-external-helpers as a metro dependency.
@babel/plugin-external-helpers as a metro dependency.[Feature]: Add support for babel.config.js config files in the React Native transformer (#251).
babel.config.js config files in the React Native transformer (#251).import/export statements.import/export statements.experimentalImportSupport config flag (more info).[Improvement]: Preview source code or source image of a module, as well as the output code from the metro visualizer.
[Feature]: Make Metro bundles compatible with ES6 Module runtimes.
optimizationSizeLimit config param to not do expensive optimizations on large files.const keywords from the bundle runtime to make it compatible with older JS engines.[Feature]: Add Metro Visualizer: a bundle visualizer to see the modules that form your app.
inlineRequires now also affect import statements (Note: This is still experimental and it's under the experimentalImportSupport config param).import/export. This improves app performance by removing the babelInteropRequire() wrappers around import calls (Note: This is still experimental and it's under the experimentalImportSupport config param).[Feature]: Upgrade to Babel to 7.0.0 from 7.0.0-beta.56 (Babel changelog).
babel-preset-fbjs to 2.3.0.[Breaking]: Rename the transformModulePath config paramater to transformer.babelTransformerPath.
transformModulePath config paramater to transformer.babelTransformerPath.assetPlugins param to the config object (not accepted as a URL param anymore).transformerPath config param to allow fully customization of the transformer logic (to generate non-JS modules).metro-visualizer package to get a visual representation of the build bundles.resetCache option to jest-haste-map.[Feature]: Expose module.id in require object.
module.id in require object.__c.…global.__r (more info). (Note: This can cause a breaking change when overriding the getRunModuleStatement config param).
processModuleFilter config param. which replaces postProcessModules that was not supported anymore (more info).7.0.0-beta.56 from 7.0.0-beta.54 (Babel changelog).inlineSourceMap option to inline the sourcemap in the bundle (more info).require function by defining the require function as global.__r (more info). (Note: This can cause a breaking change when overriding the getRunModuleStatement config param).[Feature]: Expose useWatchman configuration parameter to disable watchman crawling.
useWatchman configuration parameter to disable watchman crawling.Metro.runBuild() does not require an out param anymore (it won't save the output to disk if not provided).metro-babel-register.[Feature]: Add TypeScript support to React Native.
metro-config to override the default config.[Fixed]: Set the correct inverseDependencies when traversing a graph with circular dependencies.
inverseDependencies when traversing a graph with circular dependencies.module.exports inside a cyclic dependency (more info).[Fixed]: verboseName in dev now contains the full relative path (more info).
[Breaking]: Implemented new config system (more info).
unbundle to ram-bundle (more info).require() is also inlined (more info).[Breaking]: Drop support for Node v6.
babel@7.0.0-beta.54[Breaking] Moved the babel-preset-react-native module to Metro repository (under the metro-react-native-babel-preset) (more info)
[Fixed] Prevent variable clashing when auto-renaming module, exports, etc.
module, exports, etc.[Breaking]: Replace projectRoots config param by projectRoot + watchRoots.
projectRoots config param by projectRoot + watchRoots.[Improvement]: Reduce gzipped production builds size by using always the same prologue when minifying ((g, r, m, e, d)).
(g, r, m, e, d)).[Feature]: Add mainFields config param for module resolution logic.
mainFields config param for module resolution logic.[Fixed]: Use relative paths for module verboseName (more info).
verboseName (more info).[Fixed] Bundle command does not add InitializeCore to runBeforeMainModule (more info)
InitializeCore to runBeforeMainModule (more info)[Fixed] Issue when running Metro on Windows (more info)
[Fixed]: Fix constant-folding-plugin for default export function.
constant-folding-plugin for default export function.[Breaking]: Rename default React Native transformer name.
*(list of commits since v0.37.1)*
*(list of commits since v0.37.0)*
*(list of commits since v0.36.1)*
*(list of commits since v0.36.0)*
*(list of commits since v0.35.0)*
*(list of commits since v0.34.0)*
*(list of commits since v0.33.0)*
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →