Migrating to pnpm v11.0.0-beta.6
Version v11.0.0-beta.6 introduces 11 breaking changes. This guide details how to update your code.
Released: 3/30/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 initBreaking 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 environment variables prefixed with `npm_config_` 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`. They are replaced by the `allowBuilds` setting.
✓Solution
Replace usage of deprecated fields in configuration files with the new `allowBuilds` map in `pnpm-workspace.yaml` or `.npmrc`.
●Issue #4
Removed the deprecated `allowNonAppliedPatches` completely in favor of `allowUnusedPatches`.
✓Solution
Replace configuration using `allowNonAppliedPatches` with `allowUnusedPatches`.
●Issue #5
Removed `ignorePatchFailures`; all patch application failures will now throw an error.
✓Solution
Ensure patches are valid, or handle expected patch failures explicitly if necessary, as they will now halt execution.
●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 versions.
●Issue #8
Removed support for `hooks.fetchers`. Custom fetchers/resolvers must now use the `fetchers` field of `pnpmfile`.
✓Solution
Migrate custom fetcher/resolver logic from `hooks.fetchers` to the `fetchers` field in `pnpmfile`.
●Issue #9
The default value of the `type` field in `package.json` initialized by `pnpm init` is now `module`.
✓Solution
If you require CommonJS modules for new projects initialized via `pnpm init`, explicitly set `"type": "commonjs"` in your project's `package.json`.
●Issue #10
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 meanings or use full flags.
●Issue #11
The One-time Password feature for `pnpm publish` now reads from `PNPM_CONFIG_OTP` instead of `NPM_CONFIG_OTP`.
✓Solution
Update environment variable usage for OTP when publishing: use `PNPM_CONFIG_OTP`.
Migration Steps
- 1If relying on `npm_config_*` environment variables in lifecycle scripts, migrate logic to use standard `npm_*` variables or pass configuration explicitly.
- 2If using deprecated build dependency settings (`onlyBuiltDependencies`, etc.), replace them with the `allowBuilds` map in configuration.
- 3If using `allowNonAppliedPatches`, change configuration to use `allowUnusedPatches`.
- 4If using `pnpm server`, find an alternative method for the required functionality.
- 5Replace usage of `useNodeVersion` or `executionEnv.nodeVersion` with `devEngines.runtime` or `engines.runtime`.
- 6Migrate custom fetchers/resolvers from `hooks.fetchers` in `pnpmfile` to the `fetchers` field.
- 7If using `pnpm init`, explicitly set `"type": "commonjs"` in `package.json` if CommonJS modules are required.
- 8Update scripts using `pnpm add -p` or `pnpm add -d` if the old flag behavior (e.g., `--parseable` for `-p`) was relied upon.
- 9Ensure OTP for publishing is set via the `PNPM_CONFIG_OTP` environment variable instead of `NPM_CONFIG_OTP`.
Release Summary
This release introduces significant performance improvements via a new SQLite-backed store index and isolated global package installations. It also cleans up CLI output, updates configuration handling (especially around build dependencies and workspace configs), and drops support for older Node.js versions.
Need More Details?
View the full release notes and all changes for pnpm v11.0.0-beta.6.
View Full Changelog