Merged
Conversation
65d0162 to
b5fc539
Compare
fc33fb2 to
a6b21ae
Compare
402f1d8 to
a3fb8b6
Compare
a3fb8b6 to
8795822
Compare
6102e1d to
c652a94
Compare
8c0fed2 to
87f7bf1
Compare
87f7bf1 to
494990e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
enhanced-resolve@5.21.0
Minor Changes
Added promise API and support to resolve without
contextandresolveContext. (by @alexander-akait in #520)Add
extensionAliasForExportsoption. Whentrue,extensionAliasalso applies to paths resolved through thepackage.jsonexportsfield. Off by default to match Node.js; opt in for full TypeScript-resolver parity with packages that ship.tssources alongside the compiled.jsthey declare inexports. (by @alexander-akait in #554)Patch Changes
Properly handle DOS device paths (
\\?\…and\\.\…). (by @alexander-akait in #551)Prevent fallback to parent node_modules when the
exportsfield target file is not found. (by @xiaoxiaojx in #495)Imports field spec deviation: non-relative targets (e.g.
"#a": "#b") no longer re-enter imports resolution, aligning with the Node.js ESM spec wherePACKAGE_IMPORTS_RESOLVEdoes not recursively resolve#specifiers. (by @xiaoxiaojx in #503)Previously
{ "#a": "#b", "#b": "./the.js" }would chain-resolve#ato./the.js; now it correctly fails, matching Node.js behavior.Move
cachedJoin/cachedDirname/createCachedBasenamecaches from module-level globals to per-Resolver instances. This prevents unbounded memory growth in long-running processes — when a Resolver is garbage collected, its join/dirname/basename caches are released with it. (by @xiaoxiaojx in #507)Fixed when
tsconfig: trueis used (default config file) and notsconfig.jsonexists. (by @xiaoxiaojx in #502)Apply the
extensionAliasoption to theimportsfield to be align with typescript resolution. (by @alexander-akait in #549)Improved performance of the many plugins. (by @alexander-akait in #529)
Replace the
Set<string>-based resolver stack with a singly-linkedStackEntryclass that exposes a Set-compatible API. (by @xiaoxiaojx in #526)Each
doResolvecall now prepends a single linked-list node instead of cloning the entire Set, making stack push O(1) in time and memory. Recursion detection walks the linked list (O(n)), but because the stack is typically shallow this is much cheaper than cloning a Set per call.Cache the result of
stripJsonComments+JSON.parseinreadJsonusing aWeakMapkeyed by the raw file buffer. This avoids redundant comment-stripping and JSON parsing on every resolve call that reads tsconfig.json files (viastripComments: true), improving TsconfigPathsPlugin warm performance by ~20-35% depending on the depth of theextendschain. (by @xiaoxiaojx in #524)Avoid OOM in CachedInputFileSystem when duration is Infinity. (by @alexander-akait in #527)