Migrating to pnpm v11.0.0-alpha.10
Version v11.0.0-alpha.10 introduces 20 breaking changes. This guide details how to update your code.
Released: 2/23/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
`pnpm config get``pnpm config list`Store index file formatInternal store/cache files (serialization)`package.json` reading during resolutionBuild dependency settings (removed)`allowNonAppliedPatches` (removed)`ignorePatchFailures` (removed)`pnpm server` (removed)`useNodeVersion` (removed)`executionEnv.nodeVersion` (removed)`hooks.fetchers` (removed)`pnpmfile` (ESM support)`pnpm add` aliases (-d, -p)`pnpm publish` OTP reading`pnpm why` output format`pnpm-workspace.yaml` parsingBreaking Changes
●Issue #1
The `pnpm config get` command (without `--json`) no longer outputs INI formatted text; it now outputs JSON for objects/arrays and raw strings for primitives. Use `pnpm config get --json` if you require JSON output for all types.
●Issue #2
`pnpm config get <array>` now prints a JSON array instead of INI format.
●Issue #3
`pnpm config list` now prints a JSON object instead of INI formatted text.
●Issue #4
Auth-related settings are hidden by default from `pnpm config list` and `pnpm config get` (without arguments).
●Issue #5
`pnpm config list` and `pnpm config get` (without argument) now show top-level keys as camelCase, except for keys starting with @ or //.
●Issue #6
`pnpm config get` and `pnpm config list` no longer load non camelCase options from the workspace manifest (`pnpm-workspace.yaml`).
●Issue #7
pnpm no longer loads non-auth and non-registry settings from rc files. These settings must now be defined in `pnpm-workspace.yaml`.
●Issue #8
Workspace project specific `.npmrc` files are replaced by the `packageConfigs` field in `pnpm-workspace.yaml`.
●Issue #9
This package is now pure ESM; CommonJS usage is no longer supported.
●Issue #10
Support for Node.js v18, v19, v20, and v21 has been discontinued. Users must upgrade to a supported Node.js version.
●Issue #11
The standalone exe version of pnpm requires at least glibc 2.27.
●Issue #12
Deprecated build dependency settings (`onlyBuiltDependencies`, `onlyBuiltDependenciesFile`, `neverBuiltDependencies`, and `ignoredBuiltDependencies`) have been removed. Use the `allowBuilds` setting instead.
●Issue #13
The deprecated `allowNonAppliedPatches` option has been completely removed in favor of `allowUnusedPatches`.
●Issue #14
The `ignorePatchFailures` option has been removed; all patch application failures will now throw an error.
●Issue #15
The `pnpm server` command has been removed.
●Issue #16
Support for the `useNodeVersion` and `executionEnv.nodeVersion` fields has been removed. Use `devEngines.runtime` and `engines.runtime` instead.
●Issue #17
Support for `hooks.fetchers` has been removed. Use the new API via the `fetchers` field of `pnpmfile` for custom fetchers and resolvers.
●Issue #18
The default value of the `type` field in `package.json` initialized by `pnpm init` is now `module`.
●Issue #19
When using `pnpm add`: `-p` is now an alias for `--save-prod` (was `--parseable`), and `-d` is now an alias for `--save-dev` (was `--loglevel=info`).
●Issue #20
The `pnpm publish` command no longer relies on the `npm` CLI. The OTP feature now reads from `PNPM_CONFIG_OTP` instead of `NPM_CONFIG_OTP`.
Migration Steps
- 1If you relied on the output format of `pnpm config get` (without `--json`), update scripts to handle JSON output or use `pnpm config get --json`.
- 2Replace usage of deprecated build dependency settings (`onlyBuiltDependencies`, etc.) with the `allowBuilds` map in configuration files.
- 3Remove usage of `allowNonAppliedPatches`; use `allowUnusedPatches` instead.
- 4Remove any configuration related to `ignorePatchFailures`; patch failures will now halt execution.
- 5Update scripts that relied on `useNodeVersion` or `executionEnv.nodeVersion` to use `devEngines.runtime` or `engines.runtime`.
- 6Update scripts that relied on `hooks.fetchers` to use the `fetchers` field in `pnpmfile`.
- 7If using `pnpm publish` and relying on OTP, ensure the environment variable is set to `PNPM_CONFIG_OTP` instead of `NPM_CONFIG_OTP`.
- 8If you were using project-specific `.npmrc` files for configuration within a workspace, migrate those settings to the `packageConfigs` field in `pnpm-workspace.yaml`.
- 9If you were relying on non-auth/non-registry settings in rc files, move them to `pnpm-workspace.yaml`.
Release Summary
This release introduces major performance improvements by switching internal store formats to MessagePack and optimizing index storage. Configuration handling has been significantly overhauled, moving away from rc files and standardizing on YAML for pnpm-specific settings, alongside dropping support for older Node.js versions.
Need More Details?
View the full release notes and all changes for pnpm v11.0.0-alpha.10.
View Full Changelog