Last updated: Apr 4, 2024
Reading timeยท4 min
Use the --legacy-peer-deps
flag to solve the npm error "Fix the upstream
dependency conflict, or retry this command with --force or --legacy-peer-deps",
e.g. npm install --legacy-peer-deps
.
The flag causes NPM to ignore peer dependencies and proceed with the installation anyway.
npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm WARN ERESOLVE overriding peer dependency npm WARN Could not resolve dependency: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! Could not resolve dependency: npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
Try to run the npm install
command with the --legacy-peer-deps
flag.
npm install --legacy-peer-deps # ๐๏ธ or use the --force flag npm install --force
If you got the error when installing a specific module, add the
--legacy-peer-deps
flag at the end of the command.
npm install react --legacy-peer-deps # ๐๏ธ or use the --force flag npm install react --force
react
with the name of the module you're trying to install.legacy-peer-deps
behavior globallyAn alternative to setting the legacy-peer-deps
flag for every command, is to
set the behavior globally with the npm config set
command.
npm config set legacy-peer-deps true
Starting with NPM v7, NPM installs peerDependencies
by default. If you already
have a peer dependency of the module installed, but not one of the specified by
the module versions, NPM throws an error.
--legacy-peer-deps
flag tells NPM to ignore peer dependencies and to proceed with the installation anyway.This was the default behavior in NPM versions 4 through 6.
In other words, NPM modules name specific versions of their peerDependencies
.
If you have a different version of a peer dependency package installed, an error
is raised unless you set the --legacy-peer-deps
flag.
If the error persists, try to delete your node_modules
and
package-lock.json (not
package.json
) files, re-run npm install
.
# ๐๏ธ (macOS/Linux) delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json # ๐๏ธ (Windows) delete node_modules and package-lock.json rd /s /q "node_modules" del package-lock.json # ๐๏ธ clean your npm cache npm cache clean --force # ๐๏ธ install packages npm install # ๐๏ธ if you get an error, try with `--legacy-peer-deps` npm install --legacy-peer-deps
Your error message should contain information about which dependency could not be resolved.
npm ERR! Could not resolve dependency: # ๐๏ธ npm ERR! peer react@">=17.0.1" from react-native-web@0.17.1 npm ERR! node_modules/react-native-web npm ERR! react-native-web@"^0.17.1" from the root project
react
version 17.0.1
or greater.You can use the following command to install a specific version of a package.
npm install react@17.0.1
And then, you can try to rerun your original npm install
command.
Another thing you can try is to upgrade your version of NPM.
npm install -g npm@latest # ๐๏ธ If you get a permissions error on macOS / Linux sudo npm install -g npm@latest
If you get a permissions error on Windows, open CMD as an administrator and rerun the command.
To open CMD as an administrator:
Click on the Search bar and type CMD.
Right-click on the Command Prompt application and click "Run as administrator".
npm install -g npm@latest npm install -g npm@latest --force
The npm audit fix command scans your project for vulnerabilities and automatically installs compatible updates to vulnerable dependencies.
The npm audit fix --force
command installs major updates to top-level
dependencies, which might introduce breaking changes to your project if you rely
on older package versions.
npm install --legacy-peer-deps npm audit fix --force
Try to restart your terminal and development server after running the commands.
If the error persists, try running the npm update
command.
npm update
If you still get an error, try to delete your node_modules
and
package-lock.json
, rerun the npm install
command and restart your
development server.
# ๐๏ธ (macOS/Linux) delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json rm -f yarn.lock # ๐๏ธ (Windows) delete node_modules and package-lock.json rd /s /q "node_modules" del package-lock.json del -f yarn.lock # ๐๏ธ clean npm cache npm cache clean --force # ๐๏ธ install packages npm install # ๐๏ธ if you get an error, try with `--legacy-peer-deps` npm install --legacy-peer-deps
If the error persists, try to use the --force
flag.
# ๐๏ธ install all using --force npm install --force # ๐๏ธ install specific package using --force npm install react --force
The --legacy-peer-deps
flag ignores all peer dependencies when installing (in
the style on npm
version 4 through 6).
Whereas, the --force
flag forces NPM to fetch remote resources even if a local
copy exists on disk.