Migrating to pnpm v12.0.0-alpha.16
Version v12.0.0-alpha.16 introduces 2 breaking changes. This guide details how to update your code.
Released: 7/19/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
pnpm runtime installationpnpm.allowedDeprecatedVersionsinstall-test commandrecursive commandmulti commandm commandvirtualStoreOnly settingenableModulesDir settingenableGlobalVirtualStore settingERR_PNPM_CONFIG_CONFLICT_VIRTUAL_STORE_ONLY_WITH_NO_MODULES_DIRpnpm-workspace.yamlnode_modulespnpm addpnpm removeERR_PNPM_HOIST_PATTERN_DIFFpnpm install --ignore-scriptsnode_modules/.modules.yamlpendingBuildspnpm rebuild --pendingpnpm installpatchedDependenciesERR_PNPM_UNUSED_PATCHallowUnusedPatches settingpnpm add -goptionalDependenciesdevDependenciespnpm-lock.yamlsupportedArchitecturespnpm setupPNPM_HOMEpnpm self-updategit+file:git+https:codeload.github.comenableGlobalVirtualStoreERR_PNPM_LOCKFILE_MISSING_DEPENDENCYnodeLinker: hoistednodeLinker: isolatedLockfile is up to date, resolution step is skippedpnpm fetchImporting packages to virtual storeIf-Modified-Since304 Not Modified--os--cpu--libcstrictDepBuildsBreaking Changes
●Issue #1
The `virtualStoreOnly` setting, when combined with `enableModulesDir: false`, now fails with `ERR_PNPM_CONFIG_CONFLICT_VIRTUAL_STORE_ONLY_WITH_NO_MODULES_DIR` unless `enableGlobalVirtualStore` is on. This is because the standard virtual store resides within `node_modules`.
●Issue #2
`pnpm install` now fails with `ERR_PNPM_UNUSED_PATCH` when an entry in `patchedDependencies` does not match any installed package. To revert to the previous warning behavior, set `allowUnusedPatches: true` in `pnpm-workspace.yaml`.
Migration Steps
- 1If you are using `virtualStoreOnly` with `enableModulesDir: false`, ensure `enableGlobalVirtualStore` is enabled or adjust your configuration to avoid `ERR_PNPM_CONFIG_CONFLICT_VIRTUAL_STORE_ONLY_WITH_NO_MODULES_DIR`.
- 2If you encounter `ERR_PNPM_UNUSED_PATCH` errors, either update your `patchedDependencies` to match installed packages or set `allowUnusedPatches: true` in your `pnpm-workspace.yaml` to revert to a warning.
- 3If you previously relied on `pnpm add` to move dependencies between groups, be aware that it now moves them instead of creating duplicates.
- 4If you previously relied on `pnpm add <pkg>` without a `--save-*` flag to always save to `dependencies`, be aware that it now updates the dependency in its existing group.
Release Summary
This release enhances pnpm's runtime installation parity across Node.js, Deno, and Bun, introduces native commands like `install-test` and `recursive`, and improves the robustness of installations and dependency management, including better handling of patched dependencies and optional packages.
Need More Details?
View the full release notes and all changes for pnpm v12.0.0-alpha.16.
View Full Changelog