Change8

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

8
Breaking Changes
7
Migration Steps
9
Affected Symbols

⚠️ 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 -g

Breaking 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

  1. 1
    If you relied on `npm_config_*` environment variables being set by pnpm in lifecycle scripts, switch to using `pnpm_config_*` variables.
  2. 2
    Move 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.
  3. 3
    If you need to allow specific packages to run build scripts, use the `allowBuilds` map in your configuration, replacing deprecated build dependency settings.
  4. 4
    If you use global installs, note that they now use an isolated virtual store structure. If you need to disable this, set `enableGlobalVirtualStore: false`.
  5. 5
    If you were using `pnpm install -g`, change this command to `pnpm add -g <pkg>`.
  6. 6
    If you were using per-project `.npmrc` files for configuration, migrate those settings into the `packageConfigs` section of `pnpm-workspace.yaml`.
  7. 7
    If 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