Change8

Migrating to pnpm v11.0.0-alpha.14

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

Released: 3/11/2026

15
Breaking Changes
9
Migration Steps
26
Affected Symbols

⚠️ Check Your Code

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

`pnpm config get``pnpm config list`rc files configuration loading`.npmrc` in workspace projects`onlyBuiltDependencies``onlyBuiltDependenciesFile``neverBuiltDependencies``ignoredBuiltDependencies``allowBuilds``allowNonAppliedPatches``allowUnusedPatches``ignorePatchFailures``pnpm server``useNodeVersion``executionEnv.nodeVersion``devEngines.runtime``engines.runtime``hooks.fetchers``fetchers` field in `pnpmfile``pnpm init` default type`pnpm add` options (-d, -p, -o, -e)`pnpm publish` OTP reading`pnpm link <pkg-name>``pnpm link --global``pnpm link` (no arguments)`patchedDependencies` lockfile format

Breaking Changes

Issue #1

The `pnpm config get` command (without `--json`) now outputs JSON for objects/arrays and raw strings for primitives, instead of INI formatted text. Use `pnpm config get --json` if you require explicit JSON output for all types.

Issue #2

The `pnpm config list` command now outputs a JSON object instead of INI formatted text.

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`.

Issue #5

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

Issue #6

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

Issue #7

The `ignorePatchFailures` setting 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 in configuration is removed. Use `devEngines.runtime` and `engines.runtime` instead.

Issue #10

Support for `hooks.fetchers` is removed. Use the new `fetchers` field in `pnpmfile` for custom fetchers and resolvers.

Issue #11

The default value for the `type` field in `package.json` initialized by `pnpm init` is changed to `module`.

Issue #12

`pnpm link <pkg-name>` no longer resolves packages from the global store; only relative or absolute paths are accepted (e.g., use `pnpm link ./foo`).

Issue #13

`pnpm link --global` is removed. Use `pnpm add -g .` to register a local package's bins globally.

Issue #14

`pnpm link` (no arguments) is removed. Use `pnpm link <dir>` instead.

Issue #15

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 `pnpm config get` outputting INI format for non-JSON output, update scripts to use `pnpm config get --json` or handle JSON output.
  2. 2
    Migrate configuration settings from project-specific `.npmrc` files into the `packageConfigs` section of `pnpm-workspace.yaml`.
  3. 3
    Replace usage of deprecated build dependency settings (`onlyBuiltDependencies`, etc.) with the `allowBuilds` map in configuration.
  4. 4
    Replace usage of `allowNonAppliedPatches` with `allowUnusedPatches`.
  5. 5
    Update scripts that relied on `pnpm link <pkg-name>` resolving packages from the global store to use path-based linking (e.g., `pnpm link ./foo`).
  6. 6
    Replace usage of `pnpm link --global` with `pnpm add -g .`.
  7. 7
    If using global packages, note that `pnpm install -g` (no arguments) is no longer supported; use `pnpm add -g <pkg>` instead.
  8. 8
    If relying on the OTP feature for publishing, update environment variables from `NPM_CONFIG_OTP` to `PNPM_CONFIG_OTP`.
  9. 9
    If using configuration fields related to Node versioning, migrate from `useNodeVersion` or `executionEnv.nodeVersion` to `devEngines.runtime` or `engines.runtime`.

Release Summary

This release introduces major architectural changes to the content-addressable store using SQLite and optimizes metadata storage, alongside isolating global package installations for better stability. Configuration handling has been significantly overhauled, moving settings out of rc files and standardizing output formats.

Need More Details?

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

View Full Changelog