Migrating to pnpm v11.0.0-beta.5
Version v11.0.0-beta.5 introduces 16 breaking changes. This guide details how to update your code.
Released: 3/29/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
pnpm config getpnpm config listpnpm add -gpnpm dlxpnpm remove -gpnpm update -gpnpm list -gpnpm install -gpnpm publishpnpm initpnpm addpackageConfigsallowBuildsallowUnusedPatchesengines.runtimedevEngines.runtimeBreaking Changes
●Issue #1
pnpm no longer populates `npm_config_*` environment variables from the pnpm config during lifecycle scripts. Only well-known `npm_*` env vars are set.
✓Solution
Review lifecycle scripts to ensure they do not rely on `npm_config_*` variables set by pnpm.
●Issue #2
The standalone exe version of pnpm requires at least glibc 2.27.
✓Solution
Ensure the operating system running the pnpm executable meets the glibc 2.27 requirement.
●Issue #3
Removed deprecated build dependency settings: `onlyBuiltDependencies`, `onlyBuiltDependenciesFile`, `neverBuiltDependencies`, and `ignoredBuiltDependencies`. These must be replaced by the `allowBuilds` setting.
✓Solution
Replace usage of deprecated build dependency settings in configuration files with the `allowBuilds` map structure.
●Issue #4
Removed the deprecated `allowNonAppliedPatches` completely in favor of `allowUnusedPatches`.
✓Solution
Replace usage of `allowNonAppliedPatches` with `allowUnusedPatches` in configuration.
●Issue #5
Removed `ignorePatchFailures`; all patch application failures will now throw an error.
✓Solution
Handle patch application failures explicitly, as they no longer fail silently.
●Issue #6
Removed the `pnpm server` command.
✓Solution
Stop using the `pnpm server` command.
●Issue #7
Removed support for `useNodeVersion` and `executionEnv.nodeVersion` fields in configuration.
✓Solution
Use `devEngines.runtime` and `engines.runtime` fields instead for specifying Node.js runtime versions.
●Issue #8
Removed support for `hooks.fetchers`. Custom fetchers/resolvers must now use the `fetchers` field of `pnpmfile`.
✓Solution
Migrate custom fetcher/resolver configurations from `hooks.fetchers` to the `fetchers` field in `pnpmfile`.
●Issue #9
`pnpm install -g` (no arguments) is no longer supported for global installs.
✓Solution
Use `pnpm add -g <pkg>` instead of `pnpm install -g` to install global packages.
●Issue #10
The default value of the `type` field in the project initialized by `pnpm init` is now `module`.
✓Solution
Projects initialized via `pnpm init` will default to ESM module type.
●Issue #11
CLI argument aliases for `pnpm add` changed: `-p` is now `--save-prod` (was `--parseable`), and `-d` is now `--save-dev` (was `--loglevel=info`).
✓Solution
Update scripts using `-p` or `-d` with `pnpm add` to reflect the new alias meanings.
●Issue #12
`pnpm config get` (without `--json`) no longer prints INI formatted text; it prints JSON for objects/arrays and raw values for strings/numbers/booleans/nulls.
✓Solution
Update scripts relying on INI output from `pnpm config get` to handle the new JSON/raw output format, or use `pnpm config get --json`.
●Issue #13
`pnpm config list` now prints a JSON object instead of INI formatted text.
✓Solution
Update scripts parsing `pnpm config list` output to expect JSON format.
●Issue #14
`pnpm config get` and `pnpm config list` (without argument) no longer load non camelCase options from the workspace manifest (`pnpm-workspace.yaml`).
✓Solution
Ensure configuration options in `pnpm-workspace.yaml` intended to be loaded globally are using camelCase, unless they start with `@` or `//`.
●Issue #15
pnpm no longer loads non-auth and non-registry settings from rc files. Other settings must be defined in `pnpm-workspace.yaml`.
✓Solution
Move configuration settings previously in rc files (that are not auth/registry related) into `pnpm-workspace.yaml`.
●Issue #16
Replaced workspace project specific `.npmrc` files with the `packageConfigs` field in `pnpm-workspace.yaml`.
✓Solution
Migrate project-specific configuration settings from `.npmrc` files into the `packageConfigs` section of `pnpm-workspace.yaml`.
Migration Steps
- 1If you relied on `npm_config_*` environment variables in lifecycle scripts, update those scripts as they are no longer populated by pnpm config.
- 2If you used deprecated build dependency settings (`onlyBuiltDependencies`, etc.), replace them with the `allowBuilds` map in your configuration.
- 3Replace usage of `allowNonAppliedPatches` with `allowUnusedPatches`.
- 4Remove any configuration of `ignorePatchFailures` as patch failures now always throw.
- 5Stop using the `pnpm server` command.
- 6Replace usage of `useNodeVersion` or `executionEnv.nodeVersion` with `devEngines.runtime` or `engines.runtime`.
- 7Migrate custom fetcher/resolver configurations from `hooks.fetchers` to the `fetchers` field in `pnpmfile`.
- 8Use `pnpm add -g <pkg>` instead of `pnpm install -g` to install global packages.
- 9Update scripts parsing `pnpm config get` output if they expected INI format.
- 10Update scripts parsing `pnpm config list` output if they expected INI format.
- 11Ensure configuration options in `pnpm-workspace.yaml` that are not auth/registry related are using camelCase if they are not starting with `@` or `//`, if you rely on them being loaded by `pnpm config get`/`list` without arguments.
- 12Move non-auth/non-registry settings from rc files into `pnpm-workspace.yaml`.
- 13Migrate project-specific configuration settings from `.npmrc` files into the `packageConfigs` section of `pnpm-workspace.yaml`.
- 14If using `pnpm add` with `-p` or `-d`, be aware that their aliases have changed to `--save-prod` and `--save-dev` respectively.
- 15If publishing packages and requiring OTP, set the `PNPM_CONFIG_OTP` environment variable instead of `NPM_CONFIG_OTP`.
Release Summary
This release introduces major architectural changes, including migrating the content-addressable store index to SQLite (Store v11) and isolating global package installations for better stability. Configuration handling has been significantly overhauled, moving project-specific settings from `.npmrc` to `pnpm-workspace.yaml` and changing CLI output formats.
Need More Details?
View the full release notes and all changes for pnpm v11.0.0-beta.5.
View Full Changelog