I am getting below yarn error when deploying to AWS
error fs-extra@7.0.1: The engine "node" is incompatible with this module. Expected version ">=6 <7 || >=8". Got "7.0.0" Any idea how will this be resolved?
Will this work out if I specify engine in package.json
{ "engines" : { "node" : ">=8.0.0" } } 314 Answers
You can try to ignore the engines :
$ yarn install --ignore-engines
OR
$ yarn global add <your app> --ignore-engines
You can see all what you can ignore by running:
$ yarn help | grep -- --ignore --ignore-scripts don't run lifecycle scripts --ignore-platform ignore platform checks --ignore-engines ignore engines check --ignore-optional ignore optional dependencies 1You need to upgrade your version of node.
I ran into this same issue.
If you used Homebrew run:
brew update # This updates Homebrew to latest version brew upgrade node If you use nvm run:
nvm current node -v # Checks your current version nvm install <version> # Example: nvm install 12.14.1 Grab a version which satisfies the conditionals in your error, the latest version should work.
4A fix that is a hack can be
yarn config set ignore-engines true However if you want a permanent solution is to :
- delete node_modules/, package-lock.json & yarn.lock
- run yarn install or npm i again.
Add --ignore-engines to the suffix while installing the package like this:
yarn add <package_name> --ignore-engines
My problem was solved with yarn --ignore-engines, but I'm not sure why and how.
I had a similar issue on Ubuntu even after installing Nodejs many times with the latest version, it was showing always the same old Nodejs version; I discovered it was installing the similar old Debian package each time, even after executing the apt-get update command
Finally, I got it to work by purging the old nodeJs then adding different repository source, and installing nodeJs normally with the new distribution as follows:
sudo apt-get purge --auto-remove nodejs curl -fsSL | sudo -E bash - sudo apt-get install -y nodejs Please find the list of all NodeJs distribution below
You may find other ways of doing the update, but this one worked for me.
1You can try:
- Open you
package.json - find
"engines": { "node": "14.x" } - change
14.x->>=14.x
What worked for me was to update Node to the latest version. Following any tutorial depending on your OS.
Upgrading Node.js to latest version
I recommend doing what the error message says and checking your Node.js version (node -v). The easiest way to upgrade Node.js is with the n version manager:
$ npm install -g n Then install the latest (n latest) or LTS (n lts) version of Node.
sudo npm cache clean -f sudo npm install -g n sudo n 10.22.1 node -v => Should be on 10.22.1 type what version of node you require as I have just put 10.22.1 as an example
1I do NOT recommend using this:
% yarn install --ignore-engines It avoids the issue instead of solving it.
A possible solution would be to update your node to version > 8.0.
% brew upgrade node Or you could try installing multiple versions of node by using nodenv, in case you need them for other projects.
% brew install nodenv % nodenv init # Load nodenv automatically by appending # the following to ~/.zshrc: eval "$(nodenv init -)" % nodenv install 6.0.0 //or some other version I found this problem now, with an old code, however, I solved it with: yarn upgrade
1Just found that not only I need to upgrade the node, but also need to install it.
This upgrades node to latest version:
brew upgrade node This install the specific version of node:
nvm install 17.0.0 Update your Node.js to the latest version.