I've encountered a weird error when trying to run new or existing create-react-app project. I've tried following the steps and browsing online with no luck of fixing it. Heres the error:
There might be a problem with the project dependency tree. It is likely not a bug in Create React App, but something you need to fix locally.
The react-scripts
package provided by Create React App requires a dependency:
"babel-eslint": "9.0.0"
Don't try to install it manually: your package manager does it automatically.
However, a different version of babel-eslint
was detected higher up in the tree:
/Users/joshuaisaac/node_modules/babel-eslint (version: 7.2.3)
Manually installing incompatible versions is known to cause hard-to-debug issues.
If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true
to an .env file in your project.
That will permanently disable this message but you might encounter other issues.
To fix the dependency tree, try following the steps below in the exact order:
- Delete
package-lock.json
(notpackage.json
!) and/oryarn.lock
in your project folder. - Delete
node_modules
in your project folder. - Remove
babel-eslint
from dependencies and/or devDependencies in the package.json file in your project folder. - Run npm install or yarn, depending on the package manager you use.
In most cases, this should be enough to fix the problem. If this has not helped, there are a few other things you can try:
If you used npm, install yarn (http://yarnpkg.com/) and repeat the above steps with it instead. This may help because npm has known issues with package hoisting which may get resolved in future versions.
Check if
/Users/joshuaisaac/node_modules/babel-eslint
is outside your project directory. For example, you might have accidentally installed something in your home folder.Try running
npm ls babel-eslint
in your project folder. This will tell you which other package (apart from the expected react-scripts) installed babel-eslint.
If nothing else helps, add SKIP_PREFLIGHT_CHECK=true
to an .env file in your project.
That would permanently disable this preflight check in case you want to proceed anyway.
P.S. We know this message is long but please read the steps above :-) We hope you find them helpful!