私は学校のnodejsプロジェクトに取り組んでいます。私はncryptでbcryptをインストールすることができなかったので、bcrypt-nodejsをインストールし、昨日プロジェクトはうまくいきました。しかし、今日、「ノードアプリ」を実行すると、このエラーが発生します。
/.../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)
package.jsonファイルは次のようになります。
{
"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": "*"
}
}
私はLinux ubuntu 10.04 LTSを使用していますが、Googleで解決策を見つけようとしましたが、成功しませんでした...誰か助けてもらえますか?
OSXでコンパイルされたbcryptはLinuxではまったく動作しないであることがわかりました。つまり、ローカルOSXワークステーションでコンパイルされたbcryptをチェックインし、Linuxサーバーでノードアプリを実行しようとすると、上記のエラーが表示されます。
解決: npm install bcrypt
Linuxでは、チェックインして解決しました。
おそらくこれに対処する最善の方法は、node_modulesを.gitignore ...から除外し、npmをリモートでインストールすることです。
私もbcrypt v.1.0.3で同じ問題に直面していました。最新バージョン(3.0.1)に更新され、正常に動作するようになりました
走る
npm install bcrypt@latest --save
アプリをAWS Elastic Beanstalkにデプロイし、サーバーにbcryptをインストールする場合は、.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