-
The resolution pipeline got reimplemented. We previously used a multi-pass approach where we performed SAT optimization between each pass, but after investigating it turned out the SAT optims had little impact and added performance bottlenecks. We now run the resolution using a much simpler and more efficient algorithm.
-
Linkers can now define custom data to cache between Yarn invocations. The builtin linkers new use those new capabilities to cache package information that can't change between runs. In practice, this translates into much faster recurrent installs (when running an install that adds few new packages, if any).
-
Warnings are now reported when packageExtensions
rules are either unused or redundant with the original package definition.
-
Potentially breaking, but it was intended this way from the start: the packageExtensions
field cannot be used to replace dependencies anymore (only to add missing ones). Prefer using the resolutions
field to replace existing ones.
-
Progress bars are rendered less often, which should help performances on some terminals.
-
Aliased packages no longer include themselves in node_modules installs