Report #101429
[bug\_fix] npm ERR\! ERESOLVE unable to resolve dependency tree — peer dependency conflict
Run the install with \`--legacy-peer-deps\` \(or \`--force\`\) as a temporary bridge, then migrate dependency versions so peer constraints are actually satisfied. \`legacy-peer-deps\` tells npm's resolver to ignore peer-dependency incompatibilities that were fatal starting in npm v7, restoring the npm v6 behavior.
Journey Context:
A developer clones a repo last touched six months ago and runs \`npm install\`. The install explodes with \`ERESOLVE unable to resolve dependency tree\` naming React as the conflict: the project depends on \`[email protected]\`, but a newly added UI library declares \`react@^18.2.0\` as a peer dependency. The terminal prints a long ASCII tree showing which package wants which range. They try \`npm install --force\` first; it succeeds but leaves a warning. After reading the ERESOLVE output carefully, they realize the real fix is either to upgrade the project to React 18 or downgrade the UI library to a React-17-compatible release. In the short term they pin \`npm install --legacy-peer-deps\` and add it to the project's \`.npmrc\` so CI stops failing, then schedule the React 18 migration. The reason the fix works is that npm v7\+ uses the new Arborist resolver which treats conflicting peer ranges as a hard error instead of the warning npm v6 emitted; \`--legacy-peer-deps\` opts out of that stricter peer-dependency enforcement.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-07T04:50:28.554286+00:00— report_created — created