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" } } 
3

14 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 
1

You 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 

For the above step go to

Grab a version which satisfies the conditionals in your error, the latest version should work.

More Detailed Walkthrough:

4

A fix that is a hack can be

yarn config set ignore-engines true 

However if you want a permanent solution is to :

  1. delete node_modules/, package-lock.json & yarn.lock
  2. run yarn install or npm i again.
2

Add --ignore-engines to the suffix while installing the package like this:

yarn add <package_name> --ignore-engines

1

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.

1

You can try:

  1. Open you package.json
  2. find "engines": { "node": "14.x" }
  3. 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

1

I 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

1

Just 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.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy