Major Changes
-
Breaking: removed the
managePackageManagerVersions,packageManagerStrict, andpackageManagerStrictVersionsettings. They existed only to derive theonFailbehavior for the legacypackageManagerfield, and thepmOnFailsetting introduced alongsidepnpm withsubsumes all three — it directly sets theonFailbehavior of bothpackageManageranddevEngines.packageManager. TheCOREPACK_ENABLE_STRICTenvironment variable is no longer honored (it only gatedpackageManagerStrict); usepmOnFailinstead.Migration:
Removed setting Replace with managePackageManagerVersions: truepmOnFail: download(default)managePackageManagerVersions: falsepmOnFail: ignorepackageManagerStrict: falsepmOnFail: warnpackageManagerStrictVersion: truepmOnFail: errorCOREPACK_ENABLE_STRICT=0pmOnFail: warn
Minor Changes
-
pnpm dlxandpnpm createnow respect security and trust policy settings (minimumReleaseAge,minimumReleaseAgeExclude,minimumReleaseAgeStrict,trustPolicy,trustPolicyExclude,trustPolicyIgnoreAfter) from project-level configuration #11183. -
Implemented native
star,unstar,stars, andwhoamicommands. -
Add
pnpm with <version|current> <args...>command. Runs pnpm at a specific version (or the currently active one) for a single invocation, bypassing the project'spackageManageranddevEngines.packageManagerpins. Uses the same install mechanism aspnpm self-update, caching the downloaded pnpm in the global virtual store for reuse.Examples:
pnpm with current install # ignore the pinned version, use the running pnpm pnpm with 11.0.0-rc.1 install # install using pnpm 11.0.0-rc.1 pnpm with next install # install using the "next" dist-tagAlso adds a new
pmOnFailsetting that overrides theonFailbehavior ofpackageManageranddevEngines.packageManager. Accepted values:download,error,warn,ignore. Can be set via CLI flag, env var,pnpm-workspace.yaml, or.npmrc— useful when version management is handled by an external tool (asdf, mise, Volta, etc.) and the project wants pnpm itself to skip the check.pnpm install --pm-on-fail=ignore # direct CLI flag pnpm_config_pm_on_fail=ignore pnpm install # env var # or in pnpm-workspace.yaml: # pmOnFail: ignore -
pnpm initnow writes adevEngines.packageManagerfield instead of thepackageManagerfield wheninit-package-manageris enabled. -
When pnpm is declared via the
packageManagerfield inpackage.json, its resolution info is no longer written topnpm-lock.yaml— unless the pinned pnpm version is v12 or newer. ThepackageManagerDependenciessection is still populated (and reused across runs) when pnpm is declared viadevEngines.packageManager. This makes the transition from pnpm v10 to v11 quieter by avoiding unnecessary lockfile churn for projects that pin an older pnpm in the legacypackageManagerfield. -
Added a new setting
runtimeOnFailthat overrides theonFailfield ofdevEngines.runtime(andengines.runtime) in the root project'spackage.json. Accepted values:ignore,warn,error,download. For example, settingruntimeOnFail=downloadmakes pnpm download the declared runtime version even when the manifest does not setonFail: "download".
Patch Changes
pnpm initno longer adds thedevEngines.packageManagerfield when run inside a workspace subpackage. The field is only added to the workspace root'spackage.json.
Platinum Sponsors
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
|
|
|