Change8

Migrating to pnpm v11.0.0-alpha.5

Version v11.0.0-alpha.5 introduces 13 breaking changes. This guide details how to update your code.

Released: 2/17/2026

13
Breaking Changes
9
Migration Steps
20
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

`pnpm config get``pnpm config list``onlyBuiltDependencies``onlyBuiltDependenciesFile``neverBuiltDependencies``ignoredBuiltDependencies``allowBuilds``allowNonAppliedPatches``ignorePatchFailures``pnpm server``useNodeVersion``executionEnv.nodeVersion``hooks.fetchers``fetchers` (in pnpmfile)`pnpm-workspace.yaml` (configuration structure)`pnpm add` flags (-p, -d)`pnpm publish` OTP readingStore index file formatStore internal cache format`pnpm why` output format

Breaking 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. If you relied on INI output, you must now use `pnpm config get --json` or adjust parsing logic.

Issue #2

The `pnpm config list` command now outputs a JSON object instead of INI formatted text. Adjust parsing logic if relying on INI output.

Issue #3

pnpm no longer loads non-auth and non-registry settings from rc files. These settings must now be defined in `pnpm-workspace.yaml`.

Issue #4

Workspace project specific `.npmrc` files are replaced by the `packageConfigs` field in `pnpm-workspace.yaml`. Migrate configuration from project-level `.npmrc` files to `packageConfigs` in the workspace manifest.

Issue #5

Deprecated build dependency settings (`onlyBuiltDependencies`, `onlyBuiltDependenciesFile`, `neverBuiltDependencies`, and `ignoredBuiltDependencies`) have been removed. Use the `allowBuilds` setting instead.

Issue #6

The deprecated `allowNonAppliedPatches` option is completely removed in favor of `allowUnusedPatches`.

Issue #7

The `ignorePatchFailures` option is removed; all patch application failures will now throw an error.

Issue #8

The `pnpm server` command has been removed.

Issue #9

Support for `useNodeVersion` and `executionEnv.nodeVersion` fields is removed. Use `devEngines.runtime` and `engines.runtime` instead.

Issue #10

Support for `hooks.fetchers` is removed. Use the new API via the `fetchers` field of `pnpmfile`.

Issue #11

The default value for the `type` field in `package.json` created by `pnpm init` is now `module` (ESM).

Issue #12

The meaning of short flags for `pnpm add` has changed: `-p` is now an alias for `--save-prod` (was `--parseable`), and `-d` is now an alias for `--save-dev` (was `--loglevel=info`).

Issue #13

The One-time Password feature for `pnpm publish` now reads from `PNPM_CONFIG_OTP` instead of `NPM_CONFIG_OTP`.

Migration Steps

  1. 1
    If you relied on INI output from `pnpm config get` (without arguments), switch to using `pnpm config get --json` or update parsing logic.
  2. 2
    Migrate configuration settings previously defined in project-level `.npmrc` files to the `packageConfigs` field within `pnpm-workspace.yaml`.
  3. 3
    Replace usages of deprecated build dependency settings (`onlyBuiltDependencies`, etc.) with the `allowBuilds` map in configuration files.
  4. 4
    Replace usages of `allowNonAppliedPatches` with `allowUnusedPatches`.
  5. 5
    If you used `pnpm server`, remove it from scripts.
  6. 6
    Replace usage of `useNodeVersion` or `executionEnv.nodeVersion` with `devEngines.runtime` or `engines.runtime` in configuration.
  7. 7
    If you used `hooks.fetchers` in `pnpmfile`, migrate to using the `fetchers` field.
  8. 8
    If using `pnpm publish` and relying on OTP, export the OTP value using the `PNPM_CONFIG_OTP` environment variable.
  9. 9
    If you used short flags `-p` or `-d` with `pnpm add`, be aware they now correspond to `--save-prod` and `--save-dev` respectively.

Release Summary

This major release introduces significant performance improvements by switching internal store formats to MessagePack and optimizing index storage. It also brings substantial changes to configuration handling, replacing INI formats with JSON for config commands and standardizing workspace configuration via `pnpm-workspace.yaml`.

Need More Details?

View the full release notes and all changes for pnpm v11.0.0-alpha.5.

View Full Changelog