207 votes

Node - a été compilé avec une version différente de Node.js à l'aide de NODE_MODULE_VERSION 51

J'exécute une application de noeud sur le terminal. J'ai récemment mis à niveau le noeud v8.5.0, mais j'obtiens cette erreur:

 Error: The module '/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 51. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Object.Module._extensions..node (module.js:653:18)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/bcrypt.js:6:16)
    at Module._compile (module.js:624:30)
    at Module._extensions..js (module.js:635:10)
    at Object.require.extensions.(anonymous function) [as .js] (/tidee/tidee-au/packages/tidee-au-server/node_modules/babel-register/lib/node.js:152:7)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/server/helpers/encryptPass.js:1:16)
 

Aucune idée sur la façon de résoudre ça?

165voto

Alexander Points 3287

Vous devez supprimer le dossier du module ( bcrypt ) du dossier node_modules et le réinstaller, utilisez les commandes suivantes:

 $ rm -rf node_modules/bcrypt
$ npm install
// or
$ yarn
 

125voto

chitzui Points 598

J'ai eu le même problème et rien n' est mentionné ici a fonctionné pour moi. Voici ce qui a fonctionné pour moi:

  1. Exiger que toutes les dépendances que vous avez besoin dans l' main.js le fichier exécuté par des électrons. (ce qui semblait être le premier élément important pour moi)
  2. Exécutez npm i -D electron-rebuild ajouter l' électron-reconstruire paquet
  3. Supprimer l' node-modules le dossier, ainsi que l' packages-lock.json le fichier.
  4. Exécutez npm i d'installer tous les modules.
  5. Exécutez ./node_modules/.bin/electron-rebuild de tout reconstruire

Il est très important d'exécuter ./node_modules/.bin/electron-rebuild directement après l' npm i sinon il ne fonctionne pas sur mon mac.

J'espère que je pourrais aider un peu frustré âmes.

84voto

RPichioli Points 2213

Vous devez reconstruire le paquet et dire à npm de le mettre à jour également . Essayer:

 npm rebuild bcrypt --update-binary
 

@robertklep a répondu à une question relative avec cette commande, regardez .

Seule la reconstruction n'a pas résolu mon problème, cela fonctionne bien dans mon application.

J'espère que ça aide!

38voto

Frosty Z Points 8935

Il suffit de lancer:

npm uninstall bcrypt

Suivi par:

npm install bcrypt (ou npm install , si bcrypt est déclaré comme dépendance dans votre fichier package.json )

13voto

smets.kevin Points 203

Très probablement, vous avez ce problème en raison du package-lock.json. D'une certaine manière, cela semble vous empêcher de recompiler ou de reconstruire vos dépendances, même si vous exécutez explicitement npm rebuild . J'ai couru tout ce qui suit pour le réparer pour moi:

 rm package-lock.json;
rm -rf node_modules;
npm install;
 

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