Skip to content

Releases: react/metro

v0.87.1

Choose a tag to compare

@robhogan robhogan released this 13 Sep 10:34
  • [Feature]: Add resolver.schemeResolvers to resolve URI-scheme-prefixed specifiers (eg foo:bar) with custom resolvers (#1804 by @robhogan)
  • [Feature]: Resolve metro:babel-runtime/<path> imports to Metro's own @babel/runtime dependency (8388f71 by @robhogan)
  • [Feature]: metro-babel-transformer: Pass inlinePlatform to Babel presets via caller (6bbe095 by @robhogan)
  • [Fix]: Replace image-size dependency with vendored parsers, fix CVE alerts (#1860 by @robhogan)
  • [Fix]: Include charset=utf-8 in the Content-Type of text assets and source files served by the dev server (#1888 by @robhogan)
  • [Fix]: Preserve Platform.OS write targets during constant inlining (#1890 by @OskarEichler)
  • [Fix]: Inline the last duplicate key from static Platform.select object literals (#1889 by @OskarEichler)
  • [Fix]: FallbackWatcher no longer misses files written to a directory while it is being crawled (#1907 by @robhogan)
  • [Fix]: HttpStore: Handle socket errors during writes, so they're retried rather than crashing the process (fad3b88)
  • [Fix]: Treat CI=false and CI=0 as not-CI when defaulting watch. CI is now detected from process.env.CI only, dropping the ci-info dependency (61e4592 by @robhogan)
  • [Fix]: Fix Fast Refresh hitting undefined modules when using lazy (segmented) bundles in dev (c70d0ae by @robhogan)
  • [Performance]: FallbackWatcher: Drop walker dependency, reduce crawl RSS by ~34% and peak heap by ~41% (#1906 by @robhogan)
  • [Performance]: Don't emit redundant empty dependency map arrays for modules with no dependencies (#1858 by @robhogan)
  • [Types]: Restore publishing of private (underscore-prefixed) fields in TypeScript declarations (#1876 by @robhogan)
  • [Types]: Fix async functions being inferred as returning void (not Promise<void>), eg MetroServer#end (#1909 by @robhogan)
  • [Types]: Tidy up generated types, allow nullable props to be omitted in more places (#1885 by @robhogan)

NOTE: Experimental features are not covered by semver and can change at any time.

  • [Experimental]: metro-file-map: Add crawlerFactory to optionally replace the built-in Watchman / Node crawlers (68022f0 by @vzaidman)
  • [Experimental]: Add serializer.unstable_inlineDependencyMap to inline module IDs at serialisation time (#1786 by @robhogan)
  • [Experimental]: Add serializer.unstable_getAsyncDependencyPath to supply custom paths to framework-defined __loadBundleAsync (#1855 by @robhogan)
  • [Experimental]: Remove transformer.unstable_renameRequire - require is never renamed (42577f7 by @robhogan)
  • [Experimental]: experimentalImportSupport: Fix export * from re-exporting the source module's default export (#1777 by @robhogan)

Full Changelog: v0.87.0...v0.87.1

v0.84.6

Choose a tag to compare

@robhogan robhogan released this 02 Sep 15:51

This release is on the 0.84.x branch

  • [Types]: Fix async functions being inferrerd as returning void (not Promise<void>). (#1887 by @robhogan)
  • [Types]: Tidy up generated types, allow nullable props to be omitted in more places. (#1897 by @robhogan)

Full Changelog: v0.84.5...v0.84.6

v0.84.5

Choose a tag to compare

@robhogan robhogan released this 19 Aug 15:29

This release is on the 0.84.x branch

  • [Fix]: Replace image-size dependency with vendored parsers, fix CVE alerts (#1860 by @robhogan)

Full Changelog: v0.84.4...v0.84.5

v0.83.8

Choose a tag to compare

@robhogan robhogan released this 19 Aug 15:21

This release is on the 0.83.x branch

  • [Fix]: Replace image-size dependency with vendored parsers, fix CVE alerts (#1860 by @robhogan)

Full Changelog: v0.83.7...v0.83.8

v0.87.0

Choose a tag to compare

@robhogan robhogan released this 13 Jul 15:23
  • [Breaking]: Widen Resolution union returned by resolvers to allow type: 'virtualModule', pending implementation. (8336654 by @robhogan)
  • [Feature]: allowOptionalDependencies defaults to true to align with RN and Expo (#1775 by @robhogan)
  • [Fix]: Preserve accumulated and trailing config state when mergeConfig encounters an async config in a config chain (#1754 by @durvesh1992)
  • [Performance] Don't rename require in bundle output, improve cold build time ~5%`(TBD by @robhogan)

NOTE: Experimental features are not covered by semver and can change at any time.

  • [Experimental]: experimentalImportSupport: Support namespace re-exports, such as export * as Name from "module" (#1768 by @robhogan and @krystofwoldrich)
  • [Experimental]: experimentalImportSupport: Fix exports renamed by destructuring, and support exports of rest spreads (#1772 by @robhogan)
  • [Experimental]: experimentalImportSupport: Fix precedence so explicit export default and named exports win over export * from (#1773 by @robhogan)
  • [Experimental]: experimentalImportSupport: Evaluate export from dependencies in the module prelude instead of within or after the module body (#1774 by @robhogan)

Full Changelog: v0.86.0...v0.87.0

v0.86.0

Choose a tag to compare

@robhogan robhogan released this 06 Jul 16:46
  • [Breaking]: Metro now always emits whole-bundle source maps as index maps, and stores each module's map internally as a VlqMap (#1764, #1765 by @robhogan). Custom serialisers/transformers must consume/provide VlqMap mappings, not tuples.
  • [Breaking]: Remove deprecated default exports from public entry points (#1759 by @robhogan)
  • [Breaking]: Remove support for deprecated YAML and .es6 config files (#1752 by @robhogan)
  • [Breaking]: Remove long-deprecated resolver.blacklistRE config in favour of blockList (#1758 by @robhogan)
  • [Fix]: Fix HttpStore write retries incorrectly using the read endpoint's config (#1751 by @durvesh1992)
  • [Performance]: Source maps work makes Metro use 50% less memory and serve source maps 2x faster, for faster RNDT loads (#1741, #1742, #1743, #1760, #1763, #1764, #1765 by @robhogan)

Full Changelog: v0.85.0...v0.86.0

v0.85.0

Choose a tag to compare

@huntie huntie released this 23 Jun 16:07
  • [Breaking]: Raise minimum supported Node.js version to 22 (#1715 by @huntie)
  • [Feature]: Implement PACKAGE_SELF_RESOLVE for self-referencing imports in the resolver (#1721 by @robhogan)
  • [Fix]: Add ESM unwrapping to all CommonJS require calls (#1675 by @kitten)
  • [Fix]: Fix Windows cross-drive path resolution in metro-file-map (#1711 by @kitten)
  • [Fix]: Fix "browser"-spec bare-specifier → relative path redirects for nested and first-party package.jsons (#1720 by @robhogan)
  • [Fix]: Gracefully reject illegal "browser"-spec redirects of a bare specifier to an absolute path (e1f4d61 by @robhogan)
  • [Performance]: Avoid intermediate allocations in matchSubpathFromMainFields, improving overall resolver performance ~5% (9341463 by @robhogan)

Full Changelog: v0.84.4...v0.85.0

v0.84.4

Choose a tag to compare

@robhogan robhogan released this 30 Apr 11:39
  • [Feature]: Support /[metro-watchFolders]/n/ paths for .bundle and .map requests (#1695 by @huntie)
  • [Fix]: Fix regression to allow scale assets to be resolved again for single asset requests (#1694 by @kitten)
  • [Fix]: Treat import().catch(), etc. as optional under transformer.allowOptionalDependencies (#1697 by @robhogan)
  • [Performance]: Interleave resolution attempts with building node_modules candidate paths (#1680 by @kitten)

Full Changelog: v0.84.3...v0.84.4

v0.83.7

Choose a tag to compare

@robhogan robhogan released this 29 Apr 10:46

This release is on the 0.83.x branch

  • [Feature]: Support /[metro-watchFolders]/n/ paths for .bundle and .map requests (#1695 by @huntie)
  • [Fix]: Fix regression to allow scale assets to be resolved again for single asset requests (#1694 by @kitten)
  • [Fix]: Treat import().catch(), etc. as optional under transformer.allowOptionalDependencies (#1697 by @robhogan)
  • [Performance]: Interleave resolution attempts with building node_modules candidate paths (#1680 by @kitten)

Full Changelog: v0.83.6...v0.83.7

v0.83.6

Choose a tag to compare

@robhogan robhogan released this 13 Apr 17:00

This release is on the 0.83.x branch

  • [Feature]: Add keepalive "heartbeat" message to Fast Refresh connections (#1685 by @robhogan)
  • [Feature]: Add changeId metadata on HMRClient update-done messages (1585e444284f by @huntie)
  • [Fix]: Include user-defined Babel config in transformer cache key to ensure correctness (#1638 by @EvanBacon)
  • [Fix]: Detection of contents of directories moved or cloned into a watched location (#1660 by @robhogan)
  • [Fix]: Correctly detect contents as removed when a watched directory is moved, on macOS without Watchman (c9e9fe64a77c by @robhogan)
  • [Performance]: Optimize PackageCache: use Map/Set, cache null results, eliminate per-hit allocations (877b64ea5967 by @robhogan)
  • [Types]: Restore type exports from metro that were previously TypeScript-specific (#1672 by @robhogan)

NOTE: Experimental features are not covered by semver and can change at any time.