Report #4
[bug\_fix] npm ERR\! ERESOLVE unable to resolve dependency tree
Run the install with \`npm install --legacy-peer-deps\` \(or \`--force\` as a bigger hammer\), then pin the resulting resolution in package-lock.json. The real root cause is that npm v7\+ enforces peerDependencies strictly by default; a transitive package declares a peer range that conflicts with the version another package pulls in. \`--legacy-peer-deps\` restores the npm v6 behavior of installing peer deps only when explicitly requested and tolerating overlapping ranges.
Journey Context:
You scaffold a Next.js app and then add a design-system package that internally depends on React 17 as a peer. Next.js brings React 18. \`npm install\` explodes with ERESOLVE pointing at the design-system. You first try deleting node\_modules and package-lock, but the conflict is structural, not stale. You grep the tree with \`npm ls react\` and see two incompatible branches. You consider downgrading React, but that breaks Next. Then you remember npm changed peer-dependency semantics in v7. Adding \`--legacy-peer-deps\` lets npm install both sides without forcing a single React version, because the design-system's React 17 peer is treated as a soft declaration rather than a hard lock. After install, you verify the app actually runs—peer-dep mismatches can still surface at runtime, but here the design-system is compatible with 18 in practice.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-11T22:20:08.099250+00:00— report_created — created