What this error means

npm ERR! code ERESOLVE means npm or Node.js cannot resolve the project files, package metadata, dependency graph, or module path required by the command. Check the project root, lockfile, and Node version first.

Why this happens

Node projects depend on a consistent relationship between package.json, lockfiles, installed modules, and runtime version.

For npm ERR! code ERESOLVE, local success can be misleading if node_modules is stale or the lockfile was not regenerated.

Common causes

  • Package requires a different peer dependency version
  • Framework major versions are mixed
  • Lockfile contains stale dependency choices
  • A plugin has not been updated for the installed framework

Quick fixes

  1. Run the command from the folder containing package.json.
  2. Update the conflicting packages to compatible versions, then regenerate the lockfile.
  3. Check node --version and npm --version.
  4. Use npm ci for a clean lockfile-based install when a lockfile exists.

Copy-paste commands

Check runtime versions

node --version
npm --version

Install dependencies

npm install

Clean CI-style install

npm ci

Clear npm cache

npm cache clean --force

Reset local install state

rm -rf node_modules package-lock.json
npm install

Platform-specific fixes

CI/CD

  • Prefer npm ci in CI so the build fails when package.json and package-lock.json drift apart.

Real-world fixes

  • If the error names a peer dependency, update the plugin and framework versions together.
  • If the error names a missing file, check filename casing; CI often runs on a case-sensitive filesystem.
  • Update the conflicting packages to compatible versions, then regenerate the lockfile.

Step-by-step troubleshooting

  1. Find the first npm ERR! code ERESOLVE occurrence in the npm output; later stack lines are often symptoms.
  2. Confirm the command is running in the intended package directory.
  3. Compare package.json and package-lock.json after dependency changes.
  4. Remove stale node_modules only after checking whether the lockfile is committed.
  5. Rerun the failing command with the same Node version used in CI or production.

How to prevent it

  • Commit lockfile changes with dependency changes.
  • Pin the project Node version in .nvmrc, .node-version, or CI configuration.
  • Use CI to catch dependency drift before deploy.