Report #81410
[bug\_fix] ERR\_PNPM\_PEER\_DEP\_ISSUES / Unmet peer dependency \(strict\)
Root cause: pnpm enforces strict-peer-dependencies=true by default \(since v7\), causing installation to fail if peer dependencies are not explicitly satisfied by the project's direct dependencies. npm/yarn traditionally warned but allowed the install. This catches missing peers that cause runtime failures \(e.g., React not provided to react-dom\). Fix: Install the missing peer dependencies explicitly into your package.json dependencies \(recommended\), OR add strict-peer-dependencies=false to .npmrc to revert to warning-only mode \(migration aid\), OR use pnpm.peerDependencyRules.allowedVersions in package.json to allow specific version mismatches.
Journey Context:
You migrate an existing npm project to pnpm for faster installs. You run pnpm install and immediately hit ERR\_PNPM\_PEER\_DEP\_ISSUES. The error lists 'react' as an unmet peer dependency of 'react-dom' and 'eslint-plugin-react'. Under npm, these were only warnings. You check your package.json and see you only declared react-dom, assuming react would be hoisted transitively. You realize pnpm's strictness requires explicit declaration of peers. You add 'react' to dependencies. For a legacy internal package with incorrect peer declarations, you temporarily add strict-peer-dependencies=false to .npmrc to unblock the team, planning to fix the upstream package later. The install succeeds because pnpm now either sees the satisfied peer or bypasses the strict check based on your config.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T19:14:57.186688+00:00— report_created — created