J'exécute une application de nœud sur le terminal. J'ai récemment mis à niveau vers le nœud 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?
node.js
npm
version
node-modules
JoeTidee
la source
la source
Réponses:
Vous devez supprimer le dossier du module (
bcrypt
) dunode_modules
dossier et le réinstaller, utilisez les commandes suivantes:la source
zmq
paquet, et le reconstruire ou le supprimer etnpm installing
encore une fois n'aide pas. Toujours le même problème.rm -rf node_modules
. Effacer le cache npmnpm cache clear
:, supprimez package-lock.json ou npm-shrinkwrap.json. Et seulement après cette coursenpm i
.npm cache clear
, les autres commandes l'ont faitJ'ai eu le même problème et rien de mentionné ici n'a fonctionné pour moi. Voici ce qui a fonctionné pour moi:
main.js
fichier géré par électron. (cela m'a semblé être la première partie importante pour moi)npm i -D electron-rebuild
pour ajouter le package de reconstruction d'électronsnode-modules
dossier, ainsi que lepackages-lock.json
fichier.npm i
pour installer tous les modules../node_modules/.bin/electron-rebuild
(.\node_modules\.bin\electron-rebuild.cmd
pour Windows) pour tout reconstruireIl est très important d'exécuter
./node_modules/.bin/electron-rebuild
directement aprèsnpm i
sinon cela ne fonctionnait pas sur mon mac.J'espère que je pourrais aider certaines âmes frustrées.
la source
Vous devez reconstruire le paquet et dire à npm de mettre à jour son binaire également . Essayer:
@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!
la source
Exécutez simplement:
npm uninstall bcrypt
Suivi par:
npm install bcrypt
(ounpm install
, si bcrypt est déclaré comme dépendance dans votre fichier package.json )la source
vous pouvez voir ce lien
pour vérifier la bonne version de votre nœud. l'utilisation de NODE_MODULE_VERSION 51 signifie que la version de votre nœud est nodejs v7.x, nécessite NODE_MODULE_VERSION 57 signifie que vous devez mettre à niveau votre nœud vers la v8.x, vous devez donc mettre à niveau votre nœud. puis vous devez exécuter la
npm rebuild
commande pour reconstruire votre projetla source
11/stable
à8/stable
avec$ snap refresh node --channel=8/stable
dans Ubuntu. Après cela a fait$ npm rebuild
.NODE_MODULE_VERSION 51
signifie que le.node
fichier est compilé avec une version de nœud en utilisant NODE_MODULE_VERSION 51. Et l'utilisateur utilise une version de nœud utilisant 57, il ne peut donc pas l'utiliser directement. L'utilisateur doit reconstruire la compilation.Vous rencontrez probablement ce problème en raison du package-lock.json. D'une manière ou d'une autre, 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:la source
Assurez-vous qu'une seule version de NodeJS est installée. Essayez ces deux:
J'ai initialement installé NodeJS à partir de la source, mais c'était la version incorrecte et `` mis à niveau '' vers la version la plus récente en utilisant
nvm
, ce qui ne supprime aucune version précédente, et installe uniquement la version souhaitée dans le/root/.nvm/versions/...
répertoire. Doncsudo node
, il indiquait toujours la version précédente, tout ennode
indiquant la version la plus récente.la source
J'ai eu la même erreur mais j'essayais d'exécuter une application de nœud à l'aide d'un conteneur Docker.
Je l'ai corrigé en ajoutant un fichier .dockerignore pour ignorer le répertoire node_modules pour m'assurer que lorsque l'image docker se construit, il construit les packages natifs pour l'image que je voulais (Alpine) au lieu de copier sur les node_modules compilés pour mon hôte (Debian) .
la source
node_modules/
etpackage-lock.json
Il s'avère que mon problème était une erreur utilisateur: assurez-vous que la version du nœud que vous utilisez pour l'exécution est la même que celle que vous utilisez lors de l'exécution d'une installation ou d'un fil npm.
J'utilise NVM pour le nœud de versionnage et j'exécutais du fil via un terminal, mais mon IDE était configuré pour utiliser une version plus ancienne du nœud lors de l'exécution et il lançait l'erreur ci-dessus. Faire correspondre la version de node de mon IDE dans la configuration d'exécution à node --version a résolu le problème.
la source
J'ai eu un problème similaire avec robotjs. Il y avait du code obsolète qui nécessitait le nœud v11, mais j'avais déjà compilé du code électronique sur la v12. J'ai donc eu fondamentalement la même erreur. Rien ici n'a fonctionné car j'essayais essentiellement de reconstruire l'électron et mes autres dépendances dans le nœud v11 à partir de la v12.
Voici ce que j'ai fait (une partie de ceci est basée sur la réponse de chitzui, crédit où le crédit est dû):
npm init
pour réinitialiser le package, puis les données manquantes avec l'ancien package.json sauvegardénpm i
J'espère que cela t'aides.
la source
Pour les modules Electron, installez la reconstruction d'électrons.
Spécifiez la même version que vous avez installée dans le répertoire actuel
Vous pourriez avoir cette expérience où une construction standard de node-gyp rapporterait comme 64, puis une reconstruction électronique de base rapporterait 76, pas jusqu'à ce que vous ajoutiez -v avec la version exacte qu'elle passe à la version actuelle 80 (pour 9.0.0-beta. 6)
la source
J'ai supprimé le dossier node_modules et exécuté
npm install
et mon application a démarré sans aucune erreur.la source
J'ai eu cette erreur lors de l'exécution de mon application avec systemd:
Mais j'utilisais une version différente pour
npm install
dans le shell:Si c'est votre configuration, vous pouvez coder en dur la version du nœud dans le fichier de service ou suivre une solution de contournement comme celle-ci .
la source
Après avoir essayé différentes choses. Cela a fonctionné.
Supprimez votre dossier de modules de nœuds et exécutez
la source
J'ai rencontré le même problème avec le module grpc et dans mon cas, j'utilisais electron et j'ai défini une mauvaise version d'électrons dans la variable env "export npm_config_target = 1.2.3", en le définissant sur la version électronique que j'utilise, le problème est résolu sur ma fin. J'espère que cela aidera quelqu'un qui définit les variables d'environnement comme indiqué ici ( https://electronjs.org/docs/tutorial/using-native-node-modules#the-npm-way )
la source
Vous pouvez supprimer complètement bcrypt et installer bcryptjs. Il est ~ 30% plus lent, mais n'a pas de dépendances, donc pas de peine à l'installer.
Nous l'avons installé avec succès pour nos applications. Nous avons eu des problèmes avec bcrypt ne compilant pas sur les instances AWS pour Node v8.x
la source
Potentiellement, l'incohérence des versions du nœud JS est ce qui cause le problème. Comme indiqué dans la documentation . Assurez-vous d'utiliser l'une des versions lts. Par exemple, spécifiez ceci dans votre Dockerfile:
la source
Vérifiez la version du nœud que vous utilisez, il peut s'agir d'une incompatibilité entre ce à quoi elle est attendue.
la source
J'ai eu le même problème et aucune de ces solutions n'a fonctionné et je ne sais pas pourquoi, elles ont fonctionné pour moi dans le passé pour des problèmes similaires.
Quoi qu'il en soit, pour résoudre le problème, je viens de reconstruire manuellement le paquet en utilisant node-pre-gyp
Et tout a fonctionné comme prévu.
J'espère que cela t'aides
la source
Je viens de recevoir cette erreur en exécutant kadence, le script "kadence" installé vérifie d'abord nodejs et n'exécute node que s'il n'y a pas de nodejs. J'ai la dernière version de node liée dans mon répertoire ~ / bin mais nodejs exécute une version plus ancienne que j'avais oublié de désinstaller mais qui n'a jamais causé de problèmes jusqu'à maintenant.
Les personnes ayant ce problème peuvent donc vérifier si node et nodejs exécutent réellement la même version de node ...
la source
Dans mon cas, j'étais dans mon proxy de bureau qui sautait certains des paquets. Quand je suis sorti de mon bureau et que j'ai essayé de le faire,
npm install
cela a fonctionné. Peut-être que cela aide quelqu'un.Mais il m'a fallu plusieurs heures pour identifier que c'était la raison.
la source
Dans mon cas, je courais
nodejs
au lieu denode
. En raison de l'nodejs
installation par le gestionnaire de paquets:la source
courir
npm config set python python2.7
et courir ànpm install
nouveau, la fête est lancée .la source
il vous suffit d'exécuter les commandes ci-dessous:
et enfin
n'oubliez pas
yarn add electron-rebuild
s'il n'existe pas dans vos dépendances.la source
J'ai rencontré cette erreur deux fois dans une application d'électrons et il s'est avéré que le problème était que certains modules devaient être utilisés à partir du processus principal plutôt que du processus de rendu. L'erreur s'est produite en utilisant pdf2json et également node-canvas. Le déplacement du code qui nécessitait ces modules de index.htm (le processus de rendu) vers main.js (le processus principal) a corrigé l'erreur et l'application a été reconstruite et s'est parfaitement déroulée. Cela ne résoudra pas le problème dans tous les cas, mais c'est la première chose à vérifier si vous écrivez une application électronique et si vous rencontrez cette erreur.
la source
Voici ce qui a fonctionné pour moi. J'utilise un module de nœud en boucle avec Electron Js et j'ai rencontré ce problème. Après avoir essayé beaucoup de choses, la suite a fonctionné pour moi.
Dans votre fichier package.json dans les scripts, ajoutez les lignes suivantes:
Et puis exécutez la commande suivante
npm run rebuild
la source