web-dev-qa-db-fra.com

bcrypt en-tête elf invalide lors de l'exécution de l'application de noeud

Je travaille sur un projet nodejs pour l'école . Je ne pouvais pas installer bcrypt avec npm, donc j'ai installé bcrypt-nodejs et le projet a bien fonctionné hier . Mais aujourd'hui, quand je fais une "application de nœud "J'ai cette erreur:

/.../node_modules/bcrypt/node_modules/bindings/bindings.js:79
        throw e
              ^
Error: /.../node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at bindings (/.../node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/.../node_modules/bcrypt/bcrypt.js:1:97)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)

mon fichier package.json ressemble à ceci:

{
  "name": "Supinfarm",
  "version": "0.0.0",
  "env": {
              "PYTHON": "/usr/bin/python2.6"
        },
  "dependencies": {
    "express": "3.1.0",
    "connect-flash": "*",
    "jade": "*",
    "stylus": "*",
    "passport": "*",
    "passport-local": "*",
    "mongoose": "*",
    "bcrypt": "*"
  }
}

Je suis sur Linux ubuntu 10.04 LTS J'ai essayé de trouver une solution sur Google sans succès ........ Quelqu'un peut-il m'aider?

64
user2244469

J'ai trouvé que bcrypt compilé sur OSX ne fonctionnera pas tout à fait sur Linux . En d'autres termes, si vous archivez la bcrypt compilée sur votre poste de travail OSX local et essayez d'exécuter l'application de nœud sur vos serveurs linux, vous verrez l'erreur ci-dessus.

Solution: npm install bcrypt sous Linux, vérifiez-le, résolu.

Le meilleur moyen de résoudre ce problème est probablement d’exclure vos node_modules dans .gitignore ... et l’installation de npm à distance.

122
Cmag

Je faisais également face au même problème avec bcrypt v.1.0.3 . Je viens de mettre à jour la dernière version (3.0.1) et tout fonctionne bien maintenant

Courir 

npm install bcrypt@latest --save
4
rrt

Pour ceux qui déploient une application sur AWS elastic beanstalk et qui installent bcrypt sur le serveur, incluez un crochet post-déploiement dans .ebextensions/01_build.config:

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_build_app.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      cd /var/app/current/
      rm -rf node_modules/bcrypt
      Sudo /opt/elasticbeanstalk/node-install/node-v10.13.0-linux-x64/bin/npm install bcrypt@latest
0
Carlos Beltran