Report #98214
[bug\_fix] npm ERR\! code ERESOLVE: unable to resolve dependency tree when installing a React component library that declares react@^17 as a peer dependency while the project uses react@18
Run npm install --legacy-peer-deps, align the library to a React-18-compatible version, or use npm overrides in package.json. --legacy-peer-deps restores npm <=6 peer-dependency behavior so npm tolerates the declared peer range instead of aborting.
Journey Context:
You scaffolded a Next.js app with React 18 and later install a third-party UI package. npm v7\+ starts building the tree, sees the package's peerDependencies declare react@^17, notes that react@18 does not satisfy ^17, and aborts with ERESOLVE. The log lists 'Could not resolve dependency: peer react@^17 from ...'. You try deleting node\_modules and reinstalling, but the conflict returns because the metadata is unchanged. Reading npm's error code docs reveals ERESOLVE means the resolver could not find a compatible set. The real fix is not to force a broken install with --force, but to tell npm to use the legacy peer-dependency semantics via --legacy-peer-deps, or to pin/overrides the library to a React-18-compatible version.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-27T04:35:48.864588+00:00— report_created — created