在运行节点应用程序时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远程安装。