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
⚠️ 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 formatBreaking 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
- 1If 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.
- 2Migrate configuration settings from project-specific `.npmrc` files into the `packageConfigs` section of `pnpm-workspace.yaml`.
- 3Replace usage of deprecated build dependency settings (`onlyBuiltDependencies`, etc.) with the `allowBuilds` map in configuration.
- 4Replace usage of `allowNonAppliedPatches` with `allowUnusedPatches`.
- 5Update scripts that relied on `pnpm link <pkg-name>` resolving packages from the global store to use path-based linking (e.g., `pnpm link ./foo`).
- 6Replace usage of `pnpm link --global` with `pnpm add -g .`.
- 7If using global packages, note that `pnpm install -g` (no arguments) is no longer supported; use `pnpm add -g <pkg>` instead.
- 8If relying on the OTP feature for publishing, update environment variables from `NPM_CONFIG_OTP` to `PNPM_CONFIG_OTP`.
- 9If 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