在运行节点应用程序时encryption无效的elf标头
我正在为学校开发一个nodejs项目。 我不能用npm安装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我试图find一个解决scheme,谷歌没有成功…有人可以帮助我吗?
我发现在OSX上编译的bcrypt在Linux上不太适用 。 换句话说,如果你检查在本地OSX工作站上编译的bcrypt,并尝试在你的linux服务器上运行节点应用程序,你将会看到上面的错误。
解决scheme: npm install bcrypt
在Linux上npm install bcrypt
,检查一下,解决了。
处理这个问题的最好办法可能是排除你的.gitignore中的node_modules …和npm远程安装。