yarn v2.2.0 Release Notes
-
yarn set version 2.2.0
Ecosystem
- ๐ Packages can now use the
publishConfig.executableFiles
field in their manifests to indicate which files should keep the executable flag once packed in the archive. This is important as for portability reasons Yarn strips the executable flag from all files during packing (otherwiseyarn pack
would yield different outputs when run on Posix vs Windows). Files listed in thebin
field are assumed executable by default, so you don't need to explicitly list them inexecutableFiles
.
๐ Bugfixes
- โฑ Requests won't timeout anymore as long as the server is still sending data.
yarn pack
will properly include main/module/bin files, even when not explicitly referenced through thefiles
field.- Local git repositories can now be fetched via the
git+file:
protocol. - ๐ The progress bars will be properly styled when using the new Windows terminal on certain days.
- ๐ Yarn will now avoid using deprecated versions of the dependencies, unless only deprecated versions are available for the requested ranges.
- ๐ Build keys are now properly computed, which fixes issues where build scripts weren't always triggered when they should have been.
- Negated glob patterns in the
workspace
field will now be processed correctly. - Yarn will now allow relative paths inside the
workspace:
protocol to start with./
- Yarn will now show the actual error when it fails to resolve a request during
yarn add
andyarn up
- ๐ The portable shell will now support calling
cd
andexit
without arguments - Yarn will now show the exit code when a lifecycle script fails
- Yarn's portable shell will now also pipe the stderr when using the
|&
pipeline - Yarn's portable shell will now respect the left associativity of list operators
CLI
- Yarn will now report an error when run through an incompatible Node version.
- ๐ง
yarn add
andyarn up
will now respect thepreferInteractive
configuration option. - โก๏ธ
yarn config set
now supports the-H,--home
flag, which causes it to update the home configuration instead of the project configuration.
๐ง Configuration
- ๐ง The settings found in the home configuration file won't cause exceptions when consumed by older Yarn versions. Unsupported options will simply be silently ignored. This should improve the user experience when working with multiple projects configured with different Yarn versions.
- ๐ A new
immutablePaths
setting allow you to specify paths that must not change when running Yarn with the--immutable
flag set. You can use it to detect unforeseen changes to your install artifacts, be it.pnp.js
ornode_modules
files.
Miscellaneous
- Scripts can now use the
$RANDOM
variable as well as simple calculations using+
,-
,*
,/
and()
inside$(())
- Scripts can now use grouping curly braces (
{echo foo}
) to execute a command in the context of the current shell (without creating a subshell like in the case of(echo foo)
). - Scripts can now end with a semicolon.
- ๐ PnP linker will not remove lingering node_modules inside folders matching
pnpIgnorePatterns
Third-party integrations
- ๐ป The PnP hook will now display clearer error message when requiring Node builtins from contexts that can't access them out of the box (for example when accessing the
fs
module from within a Webpack browser bundle).
- ๐ Packages can now use the