Releases: facebook/metro
v0.82.3
- [Feature]: runBuild: add
assets
option to return an asset listing (3b4f503 by @robhogan) - [Fix]: importLocationPlugin: Fix non-deterministic false identification of ESM imports (#1497 by @byCedric)
- [Fix]: collectDepedencies: Fix one-line
export from
files triggering_interopRequireDefault is not a function
(#1498 by @byCedric)
Full Changelog: v0.82.2...v0.82.3
v0.81.5
This is a hotfix on the 0.81.x
branch.
This release fixes two issues with unstable_enablePackageExports
, which is experimental and opt-in in Metro 0.81.
NOTE: Experimental features are not covered by semver and can change at any time.
- [Experimental]: importLocationPlugin: Fix non-deterministic false identification of ESM imports (55ed2ee by @byCedric)
- [Experimental]: collectDepedencies: Fix one-line
export from
files triggering_interopRequireDefault is not a function
(5f79ce8 by @byCedric)
Full Changelog: v0.81.4...v0.81.5
v0.82.2
- [Feature]: Support
proxy
andsocketPath
in remote cacheHttpStore
(cc7316b by @robhogan) - [Feature] Fallback to showing first collapsed frame when all frames in a stack are collapsed (#1483 by @EvanBacon)
- [Fix] Support correct
application/json
body parsing in/symbolicate
(#1475 by @huntie) - [Fix] Add missing
type
for missing import errors in HMR client (#1487 by @EvanBacon)
Full Changelog: v0.82.1...v0.82.2
v0.82.1
- [Fix]: Fix wildcard pattern precedence in package.json imports/exports resolution (#1458 by @robhogan)
- [Fix]: Fix edge-case overmatching of pattern keys in package.json exports/imports resolution (c4ba9fb by @robhogan)
- [Fix]: Fix handling of export map targets with zero or 2+ wildcard characters in package.json imports/exports resolution (acfc0d8 by @robhogan)
- [Fix]: Fix terminal statuses incorrectly persisting the wrong line (7156541 by @vzaidman)
Full Changelog: v0.82.0...v0.82.1
v0.81.4
This is a hotfix on the 0.81.x
branch.
This release fixes a number of issues with unstable_enablePackageExports
.
NOTE: Experimental features are not covered by semver and can change at any time.
- [Experimental]: Fix wildcard pattern precedence in package.json imports/exports resolution (38ef15d by @robhogan)
- [Experimental]: Fix edge-case overmatching of pattern keys in package.json exports/imports resolution. (bd9d16c by @robhogan)
- [Experimental]: Fix handling of export map targets with zero or 2+ wildcard characters in package.json imports/exports resolution (72b703b by @robhogan)
- [Experimental]: Restore compat with configs that set
unstable_conditionNames: ['import']
, fix_interopRequireDefault
is not a function (8277623 by @robhogan)
Full Changelog: v0.81.3...v0.81.4
v0.82.0
- [Breaking/Feature]: Enable support for
package.json#exports
resolution by default. (#1448 by @robhogan) - [Breaking]: Integrators consuming
metro/src/DeltaBundler/Transformer
must now pass an options object withgetOrComputeSha1
(#1451 by @robhogan) - [Breaking]:
metro/src/node-haste/DependencyGraph.getSha1
has been removed, prefergetOrComputeSha1
(#1451 by @robhogan) - [Performance]: Enable lazy file hashing by default, disable with
watcher.unstable_lazySha1: false
(#1451 by @robhogan)
Full Changelog: v0.81.3...v0.82.0
v0.81.3
- [Feature]: Add support for
package.json#imports
(#1302 by @jameslawson) - [Feature]: Add
isESMImport
toResolutionContext
to distinguish resolution based on whether the dependency is arequire()
or static/asyncimport
(#1376 by @robhogan)
NOTE: Experimental features are not covered by semver and can change at any time.
- [Experimental]: With
unstable_enablePackageExports
, assert exactly one of the conditionsimport
/require
according to source syntax. (#1477 by @robhogan) - [Experimental]: Fix global package resolution with
unstable_lazySha1
(42ec821 by @robhogan)
Full Changelog: v0.81.2...v0.81.3
v0.81.2
- [Feature]: Expose modules and polyfills within
metro-runtime
via new publicpackage.json#exports
paths. (f390cdf by @robhogan) - [Fix]: Replace top-level
this
withglobalThis
in runtime prelude for service worker compatibility. (#1438 by @exzos28) - [Fix]:
get-dependencies
command: gracefully shutdown on errors. (b8e9e64 by @yungsters) - [Performance]: Don't start an excessive number of workers for hashing files during startup. (15bc295 by @robhogan)
- [Deprecated]: Deprecate deep
src
imports e.g.metro/src/x.js
across allmetro*
packages, pending removal from the stable API. (#1441 by @robhogan)
NOTE: Experimental features are not covered by semver and can change at any time.
- [Experimental]: Auto-save file cache via
config.watcher.unstable_autoSaveCache
. (#1434 by @robhogan) - [Experimental]: Add
watcher.unstable_lazySha1
to defer SHA1 calculation until files are needed by the transformer. (#1435 by @robhogan) - [Experimental]: Expose deep imports of Metro packages (
metro/src/x.js
asmetro/private/x
) as explicitly private (non-semver). (#1441 by @robhogan)
Full Changelog: v0.81.1...v0.81.2
v0.81.1
- [Feature]: Always include source file content sources in HMR source maps. Fixes facebook/react-native#49069 (breakpoints are inconsistent after fast refresh) (cd7a935 by @vzaidman)
- [Fix]: Fix edge case where files may appear missing during bundling/resolution while being modified. (2a0b548 by @robhogan)
- [Fix]: Import-exports-plugin: Rename
module
/require
/exports
/global
declarations to avoid conflicts with injected args or generated code. (#1385 by @robhogan) - [Fix]: Don't use console.log directly in bundle builds. (91d74d0 by @robhogan)
- [Fix]: Haste conflicts created after startup could cause inconsistent filesystem state. (#1399 by @robhogan)
- [Fix]: Don't enter zombie state on startup Haste collisions. (0fc8e45 by @robhogan)
- [Performance]: Exclude React Compiler runtime from inline requires. (#1390 by @gaearon)
- [Performance]: Optimize the number of workers to use for parallel processing to use
os.availableParallelism
instead ofos.cpus
. (#1378 by @screetBloom) - [Performance]: Don't stat ignored files in fsevents watcher. (a1c9cdb by @robhogan)
- [Performance]: Don't walk project on startup when using fsevents watcher on macOS. (122bdbd by @robhogan)
- [Performance]: Use fast, recursive watch on macOS regardless of optional dependency installation. (#1420 by @robhogan)
Full Changelog: v0.81.0...v0.81.1
v0.81.0
- [Breaking]: Drop support for Node.js < 18.18. (#1351 by @vzaidman)
- [Breaking]: Custom resolvers must now return absolute, real paths for any successful resolution. (3b3e0aa by @robhogan)
- [Breaking]: Don't call
context.redirectModulePath
from default resolver, use a fixed browser field spec implementation. (5e96d17 by @robhogan) - [Breaking] Resolver: Reserve import specifiers beginning '#' exclusively for future subpath imports support. (c1c80c7 by @robhogan)
- [Breaking]: Disallow Haste modules with separators and Haste packages with invalid package names. (4e9cc4b by @robhogan)
- [Feature]: Expose
ResolutionContext.fileSystemLookup
for performing file and directory existence checks and resolving real paths. (3b3e0aa by @robhogan) - [Feature]: Add
onClose
option toMetro.runServer
configuration to provide a callback called when Metro is fully torn down. (b3f141f by @vzaidman) - [Fix]: Potential "hub is undefined" error during transform due to Babel cache pollution. (#1340 by @vzaidman)
- [Fix]: Fix #1347, symlinked packages not respecting package.json redirections. (#1349 by @robhogan)
- [Fix]:
metro-memory-fs
: Respectforce
inrmSync
. (a792d85 by @robhogan) - [Fix]: Don't eagerly create empty cache directories during
getDefaultConfig
. (bfd9473 by @robhogan) - [Fix]: Invalidate transform cache on changes to inline-requires implementation. (7d02e17 by @robhogan)
- [Fix]: Resolver: Treat absolute path specifiers on Windows with the same strictness as posix, and allow absolute paths without drive letters. (8f7e000 by @robhogan)
NOTE: Experimental features are not covered by semver and can change at any time.
- [Experimental]: Remove redundant
unstable_enableSymlinks
- symlink support is stable and always-on. (e52b5ff by @robhogan) - [Experimental]: Implement
transformer.unstable_memoizeInlineRequires
to optimise inlined access. (#1346 by @robhogan). - [Experimental]: Add
unstable_server_log
,unstable_server_menu_updated
, andunstable_server_menu_cleared
reporter events (616f437 by @huntie)
Full Changelog: v0.80.11...v0.81.0