NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3758 most downloaded on npm
A Metro config for running React Native projects with the Metro bundler
Last release today
16 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Most releases are documented
notes for 37 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
453 releases · first in 2020
One column per quarter.
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
Update to glob@^13.0.0 (#41079 by @kitten)
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Nothing published for this version
Fix transformer.asyncRequireModulePath polluting cache with absolute path in transform output (#40584 by @kitten)
Nothing published for this version
Bump to @expo/metro@54.1.0 and metro@0.83.2 (#39826 by @kitten)
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
Prevent fast refresh on generated type declarations changes (#39835 by @krystofwoldrich)
Nothing published for this version
Bump to @expo/metro@~54.0.0 (#39800 by @kitten)
Add fallback resolution for @expo/metro-runtime pre-module (#39603 by @kitten)
Nothing published for this version
Increase strictness of namespace imports (#39545 by @kitten)
Add worklets version to transform key (#39541 by @brentvatne)
…to load full EXIF data for images. This is a breaking change for Android apps, as it might break the orientation of images in some cases. (#37957 by @…
expo-sqlite
expo-camera
expo-notifications
expo-media-library
expo-intent-launcher
expo-image-picker
uri to use blob URLs instead of base64 data URLs for better performance. The uri property will now be a blob URL instead of a base64 data URL, while the base64 property behavior remains unchanged. (#37447 by @hirbod)preferredAssetRepresentationMode is now .current instead of .automatic. This keeps the asset in its original container/codec (e.g. HEIC instead of JPEG) and is required for the new fast-path. Apps that relied on .automatic re-encoded output can pass preferredAssetRepresentationMode: '.automatic' to restore the old behaviour. (#37569 by @hirbod)expo-font
expo-file-system
expo-document-picker
unimodules-app-loader
expo-web-browser
expo-video-thumbnails
expo-task-manager
expo-sqlite
loadExtensionAsync / loadExtensionSync APIs and pre-bundled sqlite-vec extension. (#38693 by @kudo)expo-sqlite/localStorage/install for localStorage drop-in replacement API. (#38699 by @kudo)expo-speech
expo-screen-capture
useScreenshotListener hook. (#37411 by @hryhoriiK97)expo-modules-core
rgb color conversions. (#36914 by @alanjhughes)testID support to ExpoComposeView. (#38005 by @mateoguzmana)ValueOrUndefined. (#38620 by @lukmccall)ValueOrUndefined. (#39116 by @lukmccall)disableForceFlatten prop to control flattening of display contents views. (#39262 by @nishan) (#39262 by @intergalacticspacehighway)appContext.jsLogger. (#39159 by @behenate)expo-media-library
expo-localization
supportedLocales option to set app language from settings (#37232 by @alextoudic)expo-local-authentication
promptSubtitle and promptDescription parameters to authenticateAsync. (#35335 by @filipejuan)expo-image-manipulator
expo-intent-launcher
expo-image-picker
shape option to customize the shape of the crop zone (#38148) by @janicduplessis (#38148 by @janicduplessis)expo-font
expo-image-loader
expo-file-system
rename method for files and directories (#39138 by @kosmydel)idempotent option for creating directories (#39121 by @kosmydel)pickFileAsync support (#39173 by @kosmydel)pickDirectoryAsync support (#39210 by @kosmydel)expo-document-picker
expo-contacts
addContactsChangeListener() to detect contact changes with platform-specific behavior. . (#39434 by @hryhoriiK97)expo-calendar
expo-camera
expo-auth-session
rawResponse to TokenResponse, allows reading fields that are not part of RFC 6749. (#20284 by @stefan-schweiger)expo-asset
expo-task-manager
expo-sqlite
Statement.executeAsync. (#36674 by @kudo)SQLiteProvider with same options. (#37872 by @kudo):memory: path issue when building on Xcode 26. (#39511 by @kudo)expo-speech
expo-secure-store
expo-screen-orientation
Split View on iPad. (#36667 by @alanjhughes)createRootViewController from the ExpoReactNativeFactoryDelegate. (#36787 by @alanjhughes)expo-screen-capture
expo-print
expo-notifications
getLastNotificationResponseAsync does not return null when no response listener added (#36930 by @jmysliv)expo-notifications (#37833 by @chrfalch)setBadgeCountAsync(0) also cleared notifications (#39009 by @vonovak)TextInputNotificationResponse events (#39356 by @vonovak)setNotificationCategoryAsync (#39306 by @vonovak)expo-modules-core
extraMavenRepos not applied on Gradle subprojects. (#36500 by @lukmccall)getSharedObjectId for devices running android 7 and below. (#36698 by @lukmccall)XMLHttpRequest when network inspector is enabled. (#36715 by @kudo)createRootViewController from the ExpoReactNativeFactoryDelegate. (#36787 by @alanjhughes)Value is undefined, expected an Object in the JNIUtils::emitEventOnJSIObject. (#37778 by @lukmccall)ExpoRequestInterceptorProtocol to properly notify client about HTTP redirects. (#38078 by @kudo)RuntimeHolder bindings. (#38345 by @alanjhughes)SharedRef converter. (#39446 by @lukmccall)JNI detected error in application: obj == null in ExpoModulesHostObject::get. (#39523 by @lukmccall)expo-media-library
deleteAssetsAsync not working on android 11 or above (#33211 by @Zeeshan404)expo-location
shouldUseForegroundService being always true. (#35875 by @filipef101)expo-linking
createURL double-encodes URI parameters. (#36704 by @lukmccall)expo-mail-composer
expo-image-manipulator
expo-image-picker
expo-font
getLoadedFonts returns an empty array. (#36586 by @brentvatne)expo-gl
expo-file-system
UploadTask.uploadAsync method's return type did not indicate that the method could resolve to null. (#36476 by @DoctorJohn)textSync() to return string instead of Promise<string> (#38898 by @LeonDvlpmnt)expo-document-picker
expo-contacts
Contact.id required for updateContactAsync (#36603 by @NorseGaud)updateContactAsync() removing contact rawDates / birthday (#37054 by @NorseGaudCNContactViewController presentation (#39004 by @vonovak)instantMessageAddresses on iOS (#38985 by @hryhoriiK97)expo-constants
expo-calendar
expo-camera
PictureRef objects.(#37393 by @alanjhughes)launchScanner. (#38322 by @alanjhughes)videoQuality and pictureSize affecting modes they don't apply too. (#38757 by @alanjhughes)onDetachedFromWindow. (#39119 by @alanjhughes)expo-blur
expo-background-fetch
expo-av
expo-auth-session
expo-asset
expo-video-thumbnails
expo-task-manager
expo-sqlite
kv-store. (#36669 by @kudo)maybeFinalizeAllStatements throwing exceptions. (#36843 by @kudo)loadExtensionAsync() and loadExtensionSync(). (#38905 by @kudo)expo-speech
expo-sharing
expo-secure-store
expo-sensors
expo-screen-capture
expo-print
expo-notifications
typescript@5.9 (#38833 by @kitten)expo-modules-core
@expo/ui/swift-ui-primitives integrations. (#36937 by @kudo)ExpoComposeView to support virtual view. (#36255 by @kudo)react and react-native (#38528 by @kitten)Constants in favor of Constant and Property. (#38748 by @jakex7)ExpoGlobal with namespace and to preserve type+value overlay on re-exported core globals (#38649 by @kitten)JavaScriptValue and added props.globalEventDispatcher for expo-ui. (#38542 by @kudo)appContext to ExpoSwiftUI.ViewProps. (#39231 by @kudo)requireOptionalNativeModule will now catch errors which occur while requiring a module. (#39290 by @behenate)Color convertible support without passing AppContext. (#39183 by @aleqsio)FileSystemUtilities (#39210 by @kosmydel)kotlin.reflect.full.*. (#39385 by @lukmccall)expo-media-library
expo-local-authentication
expo-keep-awake
expo-location
expo-linking
useURL in favor of useLinkingURL. (#37005 by @aleqsio)expo-image-manipulator
expo-image-picker
quality: 1, allowsEditing: false and preferredAssetRepresentationMode: .current (new default) (#37569 by @hirbod)VideoExportPreset.Passthrough are no longer transcoded and are copied only once. (#37569 by @hirbod)expo-font
expo-gl
react-dom and react-native-reanimated peer dependencies (#38569 by @kitten)findDOMNode usage. (#38800 by @alanjhughes)expo-file-system
expo-document-picker
expo-device
expo-clipboard
expo-contacts
FileSystemUtilities (#39210 by @kosmydel)expo-cellular
expo-constants
expo-camera
createCamera a suspend function. (#37038 by @alanjhughes)typescript@5.9 (#38833 by @kitten)expo-battery
expo-background-fetch
expo-av
expo-auth-session
expo-asset
expo-application
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
Collapse unknown and stack frames (#39407 by @kitten)
Add null-bound call expression (0, x.y) around rebound member accesses generated by Import Export Plugin (#39362 by @kitten)
Revamp Import Export Plugin for higher compliance, reliable removal of double-requires, and tracing of unused imports. This also fixes an edge case fo
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Nothing published for this version
Set default enableBabelRuntime minimum Babel runtime version to the project's installed version, if any (#39040 by @kitten)
Nothing published for this version
Refactor Import Export Plugin for better live bindings support (#39083 by @krystofwoldrich)
Fix live binding of default exports (#38976 by @krystofwoldrich)
Fix live binding export deduplication failing to trigger (#38951 by @kitten)
Export all expression should not overwrite named exports of a module when import export plugin with live bindings is used (default) (#38894 by @krysto
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Add internal support for exporting native assets for hosting. (#38265 by @EvanBacon)
browserslist and automatic vendor prefixing support (#37489 by @EvanBacon)metro and enhance its syntax support (experimentalImportSupport now supports export namespace from, export destructed named object, live bindings by default and more) (#38135 by @krystofwoldrich)+middleware.ts (#38330 by @hassankhan)metro-runtime and common chunks when bundle splitting is enabled (#38339 by @krystofwoldrich)module.hot.accept() in the transformer. (#37767 by @hirbod)import-export-plugin (#38203 by @krystofwoldrich)@babel/parser, @babel/types, and @babel/template, and adding missing @babel/code-frame dependency (#38171 by @kitten)@expo/metro wrapper package (#38166 by @kitten)@react-native/js-polyfills, hermes-parser, and babel-preset-expo (fallback) dependency resolution for isolated dependencies (#38535 by @kitten)react-native from project root when looking up Hermes compiler (#38547 by @kitten)getDefaultConfig and mergeConfig from pinned metro-config version (#38682 by @kitten)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
_This version does not introduce any user-facing changes._
This version does not introduce any user-facing changes.
Your coding agent can read these notes before it upgrades. Set up the MCP server →