Migrating to pnpm v11.0.0-beta.7
Version v11.0.0-beta.7 introduces 8 breaking changes. This guide details how to update your code.
Released: 4/5/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
pnpm config getpnpm config listpnpm loginpnpm add -gpnpm dlxpnpm remove -gpnpm update -gpnpm list -gpnpm install -gBreaking 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, matching Yarn's behavior. Users relying on `npm_config_*` variables set by pnpm must switch to using `pnpm_config_*` environment variables instead.
●Issue #2
pnpm no longer reads all settings from `.npmrc` files. Only auth and registry settings are read from `.npmrc`. Configuration settings like `hoistPattern`, `nodeLinker`, etc., must now be configured in `pnpm-workspace.yaml` or the global config file.
●Issue #3
pnpm no longer reads `npm_config_*` environment variables. Use `pnpm_config_*` environment variables instead (e.g., `pnpm_config_registry` instead of `npm_config_registry`).
●Issue #4
pnpm no longer reads the npm global config at `$PREFIX/etc/npmrc`.
●Issue #5
Workspace project specific `.npmrc` files are replaced by the `packageConfigs` setting in `pnpm-workspace.yaml`.
●Issue #6
Deprecated build dependency settings (`onlyBuiltDependencies`, `onlyBuiltDependenciesFile`, `neverBuiltDependencies`, and `ignoredBuiltDependencies`) are removed. Use the `allowBuilds` setting instead.
●Issue #7
The standalone exe version of pnpm requires at least glibc 2.27.
●Issue #8
Node.js v18, v19, v20, and v21 support is discontinued.
Migration Steps
- 1If you relied on `npm_config_*` environment variables being set by pnpm in lifecycle scripts, switch to using `pnpm_config_*` variables.
- 2Move configuration settings (like `hoistPattern`, `nodeLinker`, `shamefullyHoist`) previously set in `.npmrc` files (outside of auth/registry settings) to `pnpm-workspace.yaml` or the global config file.
- 3If you need to allow specific packages to run build scripts, use the `allowBuilds` map in your configuration, replacing deprecated build dependency settings.
- 4If you use global installs, note that they now use an isolated virtual store structure. If you need to disable this, set `enableGlobalVirtualStore: false`.
- 5If you were using `pnpm install -g`, change this command to `pnpm add -g <pkg>`.
- 6If you were using per-project `.npmrc` files for configuration, migrate those settings into the `packageConfigs` section of `pnpm-workspace.yaml`.
- 7If you rely on the output format of `pnpm config get` (without `--json`), be aware it now outputs JSON/raw values instead of INI format, and update parsing logic if necessary.
Release Summary
This release introduces major architectural changes focused on performance and security, including migrating the store index to SQLite, isolating global packages, and hardening configuration loading by deprecating reliance on `.npmrc` for non-auth settings. CLI output has also been cleaned up.
Need More Details?
View the full release notes and all changes for pnpm v11.0.0-beta.7.
View Full Changelog