NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2777 most downloaded on npm
[Experimental] - 🚇 File crawling, watching and mapping for Metro
Last release 5 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
4 years old
88 releases · first in 2022
One column per quarter.
[Deprecated]: Deprecate ResolutionContext.getPackageForModule.
/symbolicate endpoint to allow custom frame skipping logic on a stack level. (https://github.com/facebook/metro/commit/ce266ddafd5eb484168f973f84a203d8b162f842 by @GijsWeterings)metro-core's Terminal from metro. (https://github.com/facebook/metro/commit/86e3f934d4818cf4332a6dc3bed914db46090dd5 by @robhogan)metro-config's resolveConfig from metro. (https://github.com/facebook/metro/commit/cc1666415f8773f799ddda6f4f7f83b8dc6205dd by @robhogan)@types/babel__code-frame. (https://github.com/facebook/metro/commit/41cdc034a92c9aed8dd3410bf1d322de8c8e3ebd by @robhogan)@types/ws. (https://github.com/facebook/metro/commit/7deb525916e7076a57e48e95a63c20702365246a by @robhogan)ResolutionContext.getPackageForModule. (https://github.com/facebook/metro/commit/2d0a01cd7e244d4dbabc1718aa5c2d43a98b2d48 by @huntie)NOTE: Experimental features are not covered by semver and can change at any time.
asyncRequire for lazy bundles. (https://github.com/facebook/metro/commit/61a30b7fc2075cf53f87ae8ad7b7423d204ef670 by @motiz88)node_modules path candidates. (https://github.com/facebook/metro/commit/29c77bff31e2475a086bc3f04073f485da8f9ff0 by @huntie)package.json discovery against root package specifiers for Package Exports. (https://github.com/facebook/metro/commit/b99530302415d065a54cf2671bd0cc6c820819ed by @huntie, fixes https://github.com/facebook/metro/issues/965 reported by @shamilovtim)Full Changelog: https://github.com/facebook/metro/compare/v0.76.1...v0.76.2
[Feature]: Support custom transformer/resolver options in metro build and runBuild API.
metro build and runBuild API. (https://github.com/facebook/metro/commit/fcfecc96728848af0f2b49a8a1f7501ff9c1054e by @motiz88)metro get-dependencies --entryFile <entryFile> can now be called as metro get-dependencies <entryFile>. (https://github.com/facebook/metro/commit/6fdce04007af5dfbbb9c1dd23fbc37ffdeb59ccb by @huntie)Content-Type and Content-Length headers for assets to Metro server. (https://github.com/facebook/metro/pull/953 by @aleqsio, https://github.com/facebook/metro/pull/961 by @byCedric)mergeConfig util from metro package. (https://github.com/facebook/metro/commit/aa8ec904ced59e8bbb22ef4fd71932d5d099baa7 by @huntie)metro-file-map: consistently abort crawl when end() is called. (https://github.com/facebook/metro/commit/51877a8c50b25ce175b097448ef063368aac2009 by @motiz88)metro-config: Don't mutate argument to loadConfig. (https://github.com/facebook/metro/commit/38ec62d1a051a5738f17444ba789ad48000ee31d by @motiz88)resolver.assetExts will now match asset files for extension values that include a dot (.). (https://github.com/facebook/metro/commit/6d65a328e6f5d7c7a5c27cad144b169f6eaad379 by @huntie)unhandledRejection listener, fix spammy EventEmitter leak warning. (https://github.com/facebook/metro/commit/833f2ffc3624d53bea18d46797a24a034e9b264a by @motiz88)MetroConfig type in metro package. (https://github.com/facebook/metro/commit/d2f36647e36702ddc1eddef4b0bfcbd5026d4199 by @huntie)NOTE: Experimental features are not covered by semver and can change at any time.
asyncRequire's parameters and make module name optional. (https://github.com/facebook/metro/commit/4e5261cca6fd84b7ce75f58b038b397b84a4b038 by @motiz88)metro-hermes-compiler package. (https://github.com/facebook/metro/commit/833f2ffc3624d53bea18d46797a24a034e9b264a by @motiz88)unstable_conditionNames now defaults to ['require']. (https://github.com/facebook/metro/pull/955 by @huntie)Full Changelog: https://github.com/facebook/metro/compare/v0.76.0...v0.76.1
[Breaking]: Increase minimum Node version from 14 to 16.
isAssetFile from custom resolver context, add assetExts. (https://github.com/facebook/metro/commit/c6548f7ccc5b8ad59ea98f4bd7f1f5822deec0cd by @huntie)require.resolveWeak(). (https://github.com/facebook/metro/commit/354d6e487a068232b740c809e59c737dc7456565 by @motiz88)false from context.redirectModulePath will resolve to empty module in all cases. (https://github.com/facebook/metro/commit/0f1846a64d7ec27ad7c42b1aee2a049e0fad9a5a by @huntie)browser, react-native etc when resolving subpath package specifiers. (https://github.com/facebook/metro/commit/7e922270de2f710112346e651c0d95a1903086aa by @huntie)__jsResource and __conditionallySplitJsResource functions from module API. (https://github.com/facebook/metro/commit/f1d905bb60227b3390515928fb87c9d524ca5481 and https://github.com/facebook/metro/commit/69c8fc707bda418b4eb7aa646ad2887d83e1d3f1 by @motiz88)NOTE: Experimental features are not covered by semver and can change at any time.
"exports" field would be used on relative imports within a package. (https://github.com/facebook/metro/commit/cd25c2b5bb6011340d43dd57b8751a102031122a by @huntie)[Feature]: metro-inspector-proxy: Add a human-readable reference to each inspector entries/pages.
metro-inspector-proxy: Add a human-readable reference to each inspector entries/pages.(https://github.com/facebook/metro/pull/921 by @byCedric)metro-inspector-proxy: Report errors in the console. (https://github.com/facebook/metro/commit/da8b41b279e2618786901daa3d6f25f20e9202db by @mattbfb)metro-inspector-proxy: Fetch source maps from Metro. (https://github.com/facebook/metro/commit/6690b393cc1812af02f8eb20853504f0a6188a83 by @mattbfb)NOTE: Experimental features are not covered by semver and can change at any time.
resolver.unstable_enablePackageExports) (https://github.com/facebook/metro/commit/4d7ab38ba9f85e7a8d4e2a9f2b26f48c1c070186, https://github.com/facebook/metro/commit/38b96f872a92d0f0650c9af0250c8dc5599a6e62, https://github.com/facebook/metro/commit/216d3e234c14a7c16b9561b2682e60d2e2936114, https://github.com/facebook/metro/commit/6e6f36fd982b9226b7daafd1c942c7be32f9af40 by @huntie)resolver.unstable_enableSymlinks) (https://github.com/facebook/metro/pull/925, https://github.com/facebook/metro/pull/926, etc. by @robhogan)Full Changelog: https://github.com/facebook/metro/compare/v0.75.0...v0.75.1
[Breaking]: Formalise minimum Node JS requirement at 14.17.0 via package.json#engines.
package.json#engines. (https://github.com/facebook/metro/commit/c3e453ede5765a84c006b2c819a0f706218773bf)context.redirectModulePath implementation to return absolute path in all cases. (https://github.com/facebook/metro/commit/acbfe63d83a7905e21f6e034a86e5956a5062861)mainFields, getPackage, and getPackageForModule to custom resolver context. (https://github.com/facebook/metro/commit/adfb59329f9ff97151bd33abb7b72433e711eff9)Full Changelog: https://github.com/facebook/metro/compare/v0.74.1...v0.75.0
[Feature]: Add @babel/plugin-proposal-numeric-separator to metro-react-native-babel-preset
@babel/plugin-proposal-numeric-separator to metro-react-native-babel-preset (https://github.com/facebook/metro/pull/681 by @SConaway)Full Changelog: https://github.com/facebook/metro/compare/v0.74.0...v0.74.1
[Breaking] Remove @babel/plugin-transform-template-literals from metro-react-native-babel-preset
postProcessBundleSourcemap from config (https://github.com/facebook/metro/commit/339794e43463e004ae36861db17fdfbaf4a9bc67)find crawler on Windows (https://github.com/facebook/metro/commit/735aa9f5233e4cce78f93e94e80a3be509eea72c)Full Changelog: https://github.com/facebook/metro/compare/v0.73.6...v0.74.0
*This is a hotfix on the `0.73.x` branch.*
This is a hotfix on the 0.73.x branch.
//& instead of ? as a query string delimiter (https://github.com/facebook/metro/pull/994 by @robhogan)Full Changelog: https://github.com/facebook/metro/compare/v0.73.9...v0.73.10
*This is a hotfix on the 0.73.x branch.*
This is a hotfix on the 0.73.x branch.
NodeWatcher (https://github.com/facebook/react-native/issues/36387) (https://github.com/facebook/metro/commit/ab86982fad83da457d949f01a301c589fabcb12e by @robhogan)Full Changelog: https://github.com/facebook/metro/compare/v0.73.8...v0.73.9
*This is a hotfix on the 0.73.x branch.*
This is a hotfix on the 0.73.x branch.
Full Changelog: https://github.com/facebook/metro/compare/v0.73.7...v0.73.8
*This is a hotfix on the 0.73.x branch.*
This is a hotfix on the 0.73.x branch.
find crawler on Windows (https://github.com/facebook/metro/commit/370301981b8e5a92e072e5a2323e9be3308a2cdf)[Fix] Fix duplicate 'add' events, reduce dropped events on new subtrees in NodeWatcher (non-Watchman, non-macOS).
NodeWatcher (non-Watchman, non-macOS).(https://github.com/facebook/metro/commit/51fb7e349ca9462511ea5cd1b9c391be68839a32)NOTE: Experimental features are not covered by semver and can change at any time.
experimentalImportBundleSupport: Move bundle path hints into serialised dependency map(https://github.com/facebook/metro/pull/901)Full Changelog: https://github.com/facebook/metro/compare/v0.73.5...v0.73.6
[Fix]: Make all getTransformOptions result properties optional.
getTransformOptions result properties optional. (https://github.com/facebook/metro/commit/a07c8235a39724b8dbc7f18312db57f10302ae56)metro-runtime: Re-throw cached module errors without wrapping. (https://github.com/facebook/metro/commit/032c4a1e03f3f696c8526c7771621d8e312e3f61)babel/types dependency to ^7.20.0 for more consistent exposed AST Bump babel/types dependency to ^7.20.0 for more consistent exposed ASTFull Changelog: https://github.com/facebook/metro/compare/v0.73.4...v0.73.5
[Feature]: Expose watch option in RunServerOptions
watch option in RunServerOptions (https://github.com/facebook/metro/pull/889 by @EvanBacon)metro-runtime: Emit additional context on WebSocket 'close' events (https://github.com/facebook/metro/commit/d54986c49cbcb217a831769766abc87f6ceb52cd)NOTE: Experimental features are not covered by semver and can change at any time.
experimentalImportBundleSupport: Retraverse parents of deleted async dependencies (https://github.com/facebook/metro/commit/cb806d15d4c4631b74cd4d3939dd9d07494bba13)Full Changelog: https://github.com/facebook/metro/compare/v0.73.3...v0.73.4
[Feature]: Add configurable watcher health check that is off by default
NOTE: Experimental features are not covered by semver and can change at any time.
experimentalImportBundleSupport option from transformer to server (https://github.com/facebook/metro/commit/3c0e1f7c298d226f86f30b77ec443f5aa54bf8b2)Full Changelog: https://github.com/facebook/metro/compare/v0.73.2...v0.73.3
Maintenance release with purely internal changes.
Maintenance release with purely internal changes.
Full Changelog: https://github.com/facebook/metro/compare/v0.73.1...v0.73.2
[Fix]: Generate a unique name for each Watchman subscription.
NOTE: Experimental features are not covered by semver and can change at any time.
require.context on Windows (https://github.com/facebook/metro/pull/876 by @byCedric)Full Changelog: https://github.com/facebook/metro/compare/v0.73.0...v0.73.1
[Breaking] Switch default minifier from uglify-es to terser.
uglify-es to terser. (#871)fsevents watcher on Apple Silicon. (#875)metro-file-map cache read. (7028b7f51074f9ceef22258a8643d0f90de2388b)metro-react-native-babel-preset. (c2365bb1d72a3773b31c05feab13a96afac484df)watchman --version if useWatchman is false. (76c9307ed61efa7794b30b4e585cc5941ed73e16)Full Changelog: https://github.com/facebook/metro/compare/v0.72.3...v0.73.0
*This is a hotfix on the `0.72.x` branch.*
This is a hotfix on the 0.72.x branch.
//& instead of ? as a query string delimiter (https://github.com/facebook/metro/pull/993 by @robhogan)Full Changelog: https://github.com/facebook/metro/compare/v0.72.3...v0.72.4
[Fix]: Incremental build crashing when garbage collecting modules reachable via multiple paths in the graph.
Full Changelog: https://github.com/facebook/metro/compare/v0.72.2...v0.72.3
[Feature] Pass `customResolverOptions` from bundle URL into resolveRequest
customResolverOptions from bundle URL into resolveRequest (https://github.com/facebook/metro/commit/623b55d54874c77ee51bca6424fca9c3156678ae)hermes-parser conditionally when hermes is enabled (https://github.com/facebook/metro/pull/855 by @EvanBacon)metro-hermes-compiler (https://github.com/facebook/metro/pull/856 by @EvanBacon)Full Changelog: v0.72.1...v0.72.2
[Feature] Expose the react-refresh/runtime module as part of the metro-runtime package
react-refresh/runtime module as part of the metro-runtime packageNOTE: Experimental features are not covered by semver and can change at any time.
require.context support (https://github.com/facebook/metro/pull/822 by @EvanBacon)Full Changelog: v0.72.0...v0.72.1
[Breaking] Enable React 17 new JSX transform
watcher.additionalExts option, enable inclusion of .cjs and .mjs files by default (c1c6d9c09fa92aa2ba71d803fdfa480e4dbb6a51).json files will no longer be implicitly resolved if removed from resolver.sourceExts (a3dc30aa0d54d65d6dbd426662f59b0ec398a612).jsx files will now be resolved before .json, .ts, .tsx (1b479314dc08f2a2e2f76438971f32fcf431ee89)metro is passed an invalid subcommand or argument (19c4f7edb85f5b61b056580515348ca9715dd361)start alias for serve CLI command (19c4f7edb85f5b61b056580515348ca9715dd361)Full Changelog: v0.71.3...v0.72.0
[Fix] End watchman client on calling MetroFileMap end.
Full Changelog: https://github.com/facebook/metro/compare/v0.71.2...v0.71.3
[Feature] Add `requireCycleIgnorePatterns` option to suppress warnings for require cycles, suppress node_modules by default
requireCycleIgnorePatterns option to suppress warnings for require cycles, suppress node_modules by default (https://github.com/facebook/metro/pull/707 by @hsource)deferStates option for Watchman (570c38039abc32b758f8d241896b21e28ca4ba83)NOTE: Experimental features are not covered by semver and can change at any time.
unstable_allowRequireContext config option, implement transformer support for require.context (https://github.com/facebook/metro/pull/821 by @EvanBacon)Full Changelog: v0.71.1...v0.71.2
[Fix] Remove deprecated Prop Types from lazy imports
.npmignore files (e8bb8fb4035699c83fce4b35aabcaec208513f3c)NOTE: Experimental features are not covered by semver and can change at any time.
unstable_fileMapCacheManagerFactory config option (e7419900d2e063f2d531313f810d18c487f807f8)unstable_perfLogger config option (eec0d7bf00aa707ae210b25218501b3e17dc4bf2)unstable_hasteMapModulePath from Metro config (1cae8d8007d04ba62a739a6c4dff991c69af26e4)Full Changelog: v0.71.0...v0.71.1
[Feature] Add fileMapCacheDirectory config option, deprecate hasteMapCacheDirectory
fileMapCacheDirectory config option, deprecate hasteMapCacheDirectory (93966c0065e24dfaed15e409eeedf4b9bc209a41)runServer quickly if the port is not available (6d9623eec0250f8b0e78d1843c18a531444713ff)@babel/runtime to metro-runtime (#816)metro-transform-worker (#817)InspectorProxy: Don't pass an Error object to socket.close() (fdc4ef17230ee093cfd302ddc8c59a88019b1f02)NOTE: Experimental features are not covered by semver and can change at any time.
jest-haste-map fork as metro-file-map (#812)Full Changelog: v0.70.2...v0.71.0
> NOTE: Experimental features are not covered by semver and can change at any time.
NOTE: Experimental features are not covered by semver and can change at any time.
metro-react-native-babel-preset: Transform named capture groups in regex literals for Hermes (#791 by @danilobuerger)Your coding agent can read these notes before it upgrades. Set up the MCP server →