Node.js bcrypt导致的ELF标头无效

Node.js bcrypt导致的ELF标头无效,node.js,ubuntu,meteor,Node.js,Ubuntu,Meteor,我遵循这个解决方案: 但我仍然会遇到这样的错误: /home/kaleobox/bundle/programs/server/node_modules/fibers/future.js:245 throw(ex); ^ Error: /home/kaleobox

我遵循这个解决方案:

但我仍然会遇到这样的错误:

    /home/kaleobox/bundle/programs/server/node_modules/fibers/future.js:245
                                                    throw(ex);
                                                          ^
    Error: /home/kaleobox/bundle/programs/server/npm/npm-bcrypt/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 (/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
        at Object.<anonymous> (/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
        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)
/home/kaleobox/bundle/programs/server/node\u modules/fibers/future.js:245
投掷(ex);
^
错误:/home/kaleobox/bundle/programs/server/npm/npm bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node:ELF头无效
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
在绑定时(/home/kaleobox/bundle/programs/server/npm/npm bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
反对。(/home/kaleobox/bundle/programs/server/npm/npm bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
我进入
/home/kaleobox/bundle/programs/server/node_模块
,做了以下工作:

rm-R/home/kaleobox/bundle/programs/server/node_modules/bcrypt

然后

npm安装bcrypt

但上述错误依然存在。线路

/home/kaleobox/bundle/programs/server/npm/npm bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node:ELF头无效


告诉我可能必须在第二个位置删除并重新安装bcrypt?

您应该从中重新安装bcrypt

/home/kaleobox/bundle/programs/server/npm/npm bcrypt/node模块

而不是

/home/kaleobox/bundle/programs/server/node_模块


正如@lingxiao sun的回答所指出的,您可能会发现将
/home/kaleobox/bundle/programs/server/node_modules
中的
bcrypt
复制到
/home/kaleobox/bundle/programs/server/npm/npm bcrypt/node modules
将解决此问题


这可能是因为
/bundle/programs/server/node_modules
中的
bcrypt
将在本地构建/安装到主机,而
/server/npm/npm bcrypt/node modules/
中的
bcrypt
可能来自源/构建机器,如果这些环境不同,则可能会由于每个环境所需的特定二进制文件而导致问题。

我已通过在以下目录中重新安装bcrypt包解决了此问题:

  • 访问此目录:

    /my\u app/programs/server/npm/npm bcrypt/

  • 然后运行
    npm安装bcrypt

  • 再次启动你的应用程序。应该没问题


感谢您发布此问题的答案!在堆栈溢出时不鼓励只使用代码的答案,因为原始海报(或未来读者)可能很难理解它们背后的逻辑。请编辑您的问题并对代码进行解释,以便其他人可以从您的答案中获益。谢谢如何通过npm使用您的建议?