unstale

npm / @yarnpkg/core

@yarnpkg/core

What changed in @yarnpkg/core 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.

31 breaking15 new APIs and options1 performance16 behavior and defaults1 tooling4 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.12 on npm

@yarnpkg/core 368 changes

Breaking changes 31

  • This configuration option was removed; build state moved into the install state.

    3.0.0release notes

  • Cache files must be regenerated because their timestamps changed to address a zip specification flaw affecting third-party tools.

    3.0.0release notes

  • CLI definitions are now exposed on the entry point rather than on .command.

    3.0.0release notes

  • This API was removed; use formatUtils.pretty instead.

    3.0.0release notes

  • Immutable installs now default to enabled on CI; set YARN_ENABLE_IMMUTABLE_INSTALLS=false to allow mutations.

    3.0.0release notes

  • Use this type-safe API in place of the removed configuration.format.

    3.0.0release notes

  • The git: protocol now fetches HEAD by default instead of the hardcoded master branch.

    3.0.0release notes

  • The json option was removed; use jsonResponse instead.

    3.0.0release notes

  • Use jsonResponse in place of the removed json option.

    3.0.0release notes

  • Use this configuration option in place of the removed initVersion and initLicense options.

    3.0.0release notes

  • This configuration option was removed; use initFields instead.

    3.0.0release notes

  • Node 10 is no longer supported.

    3.0.0release notes

  • The description field was removed; use formatUtils.json with the PACKAGE_EXTENSION type.

    3.0.0release notes

  • PnP now generates .pnp.cjs files regardless of the manifest type field.

    3.0.0release notes

  • Projects using portal dependencies with the node-modules linker must use this Node option to access their dependencies.

    3.0.0release notes

  • The Prettier SDK no longer uses PnPify; plugins must now be specified in Prettier's plugins configuration property.

    3.0.0release notes

  • This method was removed; the build state is now in Project.storedBuildState.

    3.0.0release notes

  • This API was removed; use structUtils.stringifyIdent instead.

    3.0.0release notes

  • The virtual folder was renamed to __virtual__.

    3.0.0release notes

  • The virtual folder used to disambiguate peer dependencies now uses this name.

    3.0.0release notes

  • Set this environment variable to false to allow mutations when immutable installs are enabled by default on CI.

    3.0.0release notes

  • Use --mode=skip-build in place of the renamed --skip-builds flag.

    3.0.0release notes

  • The --skip-builds flag was renamed to --mode=skip-build.

    3.0.0release notes

  • Build state is now stored in the install state at this path.

    3.0.0release notes

  • The command upgrades builtin plugins too, unless --skip-plugins is set.

    3.0.0release notes

  • The -a alias was removed; use -A or --all instead.

    3.0.0release notes

  • Use -A or --all in place of the removed -a alias.

    3.0.0release notes

  • This is the new name for @yarnpkg/plugin-node-modules.

    3.0.0release notes

  • This package was renamed to @yarnpkg/plugin-nm.

    3.0.0release notes

  • The package was split into @yarnpkg/sdks, @yarnpkg/pnpify, and @yarnpkg/nm.

    3.0.0release notes

  • Plugins can no longer access yup; Typanion is used instead.

    3.0.0release notes

New APIs and options 15

  • Yarn's builtin shell now supports background jobs with color-coded output.

    3.0.0release notes

  • Set this new flag to false to exclude YNxxxx message names from output.

    3.0.0release notes

  • The node-modules linker can now utilize hardlinks, with strategies selected through nmMode.

    3.0.0release notes

  • This setting selects the node_modules strategy: classic, hardlinks-local, or hardlinks-global.

    3.0.0release notes

  • A new command removes a setting from local configuration, or from home configuration with -H.

    3.0.0release notes

  • The new -s or --save flag saves the patch instead of only printing it.

    3.0.0release notes

  • The command can install specific versions of official plugins and downloads plugins compatible with the current CLI by default.

    3.0.0release notes

  • This new command removes resolutions previously set by yarn link.

    3.0.0release notes

  • The new recursive flag upgrades the specified package regardless of where it is.

    3.0.0release notes

  • The new --prerelease flag replaces how prereleases were previously handled.

    3.0.0release notes

  • The new --from <glob> flag, when combined with -R, targets workspaces reachable from the matching workspaces.

    3.0.0release notes

  • An official ESBuild resolver is now provided under this package name.

    3.0.0release notes

  • This package now contains the node_modules tree builder and hoister.

    3.0.0release notes

  • This package now contains the Editor SDKs.

    3.0.0release notes

  • The new enableMessageNames flag can be set to false to omit YNxxxx names from output.

    3.0.0release notes

Performance 1

  • The command should boot significantly faster on large projects.

    3.0.0release notes

Behavior and default changes 16

  • Builtin patches that fail to apply now emit a warning and use the original sources instead of causing an error.

    3.0.0release notes

  • PnP projects can now use the Node exports field regardless of Node version.

    3.0.0release notes

  • Yarn's builtin shell now supports redirections from file descriptors.

    3.0.0release notes

  • The PnP hook now supports the node: protocol.

    3.0.0release notes

  • Workspaces now get self-references under this linker, so requiring a workspace's own package.json works without most absolute aliases.

    3.0.0release notes

  • Running yarn install in a Yarn v1 project now automatically enables this linker to ease migrations.

    3.0.0release notes

  • yarn init and yarn set version now set the packageManager field.

    3.0.0release notes

  • The patched filesystem now supports file URLs, bigint, and fstat.

    3.0.0release notes

  • The node-modules linker now attempts to support portal dependencies; Node must run with --preserve-symlinks, and sub-dependencies must be hoisted outside the portal.

    3.0.0release notes

  • This method now matches on virtual descriptors.

    3.0.0release notes

  • This method now matches on virtual descriptors.

    3.0.0release notes

  • The command now supports running shell scripts using Yarn's portable shell.

    3.0.0release notes

  • The command can now run inside existing projects and create missing files.

    3.0.0release notes

  • The command can now be used repeatedly on the same patch folder.

    3.0.0release notes

  • The command downloads binaries from the official Yarn website rather than GitHub.

    3.0.0release notes

  • Verbose mode now prints when processes start and end, even if they have no output.

    3.0.0release notes

Tooling 1

  • This package now contains the PnPify CLI compatibility tool that creates in-memory node_modules.

    3.0.0release notes

Fixes and other changes 4

  • Boolean values specified through the ${ENV_VAR} syntax in configuration files are now interpreted properly.

    3.0.0release notes

  • If preinstall, install, or postinstall fails, the remaining scripts are skipped.

    3.0.0release notes

  • The SIGTERM signal is now propagated to child processes.

    3.0.0release notes

  • The command now correctly unsets non-nested properties.

    3.0.0release notes