382 votes

Le moteur "node" est incompatible avec ce module.

J'obtiens l'erreur suivante lors du déploiement vers AWS

error fs-extra@7.0.1: The engine "node" is incompatible with this module. Expected version ">=6 <7 || >=8". Got "7.0.0"

Une idée de la manière dont ce problème sera résolu ?

Cela fonctionnera-t-il si je spécifie le moteur dans le package.json ?

{ 
  "engines" : { 
    "node" : ">=8.0.0" 
  }
}

0 votes

Oui, vous obtenez cette erreur en raison d'une incompatibilité entre la version du paquet et le moteur de nœuds.

0 votes

@ShubhamSharma, Merci. Si je spécifie le bloc moteur dans le package.json, je n'aurai pas d'erreur, n'est-ce pas ? Je vais essayer ceci alors

463voto

user1848257 Points 1241

Vous pouvez essayer d'ignorer les moteurs :

$ yarn install --ignore-engines

OU

$ yarn global add <your app> --ignore-engines

Vous pouvez voir tout ce que vous pouvez ignorer en courant :

$ 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

169voto

David Arango Points 648

Vous devez mettre à jour votre version de nœud .

J'ai rencontré le même problème.

Si vous avez utilisé Homebrew courir :

brew update  # This updates Homebrew to latest version
brew upgrade node

Si vous utilisez nvm courir :

nvm current node -v  # Checks your current version
nvm install <version>  # Example: nvm install 12.14.1

Pour l'étape ci-dessus, rendez-vous sur https://nodejs.org/en/download/

Prenez une version qui satisfait aux conditions de votre erreur, la dernière version devrait fonctionner.

Marche à suivre plus détaillée : https://flaviocopes.com/how-to-update-node/

165voto

Une réparation qui est un hack peut être

yarn config set ignore-engines true

Cependant, si vous voulez une solution permanente, il faut :

  1. supprimer node_modules/, package-lock.json & yarn.lock
  2. Exécutez à nouveau yarn install ou npm i.

1 votes

La solution permanente a fonctionné pour moi !

10 votes

Supprimer yarn.lock et refaire yarn install a fonctionné pour moi, et semble être la solution la plus raisonnable - j'ai cloné un repo que je n'avais pas touché depuis des années, et ma version de node a été mise à jour depuis - l'erreur était due au fait que yarn.lock disait à yarn de s'attendre à une certaine version de node - dans mon cas, 'Expected version ">=4 <=9". Got "16.1.0"' - donc supprimer yarn.lock.

38voto

cmcodes Points 505

Ajouter --ignore-engines au suffixe lors de l'installation du paquet comme ceci :

yarn add <package_name> --ignore-engines

2 votes

Merci pour cela :) Je ne recommanderais pas d'ignorer quoi que ce soit, mais bon, en local tout est bon :D

18voto

Hany Sakr Points 594

J'ai eu un problème similaire sur Ubuntu, même après avoir installé Nodejs plusieurs fois avec la dernière version, il montrait toujours la même ancienne version de Nodejs ; j'ai découvert qu'il installait l'ancien paquet Debian similaire à chaque fois, même après avoir exécuté la commande apt-get update.

Finalement, j'ai réussi à le faire fonctionner en purgeant l'ancien nodeJs puis en ajoutant une source de dépôt différente, et en installant nodeJs normalement avec la nouvelle distribution comme suit :

sudo apt-get purge --auto-remove nodejs
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

Veuillez trouver la liste de toutes les distributions NodeJs ci-dessous https://github.com/nodesource/distributions/blob/master/README.md

Vous trouverez peut-être d'autres façons d'effectuer la mise à jour, mais celle-ci a fonctionné pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X