解决 Serverless 部署时产生的 bcrypt invalid ELF header 问题


昨天开始折腾阿里云 Serverless,打算把后端应用部署到「函数计算」上去。碰到一个问题,运行时报错:

...
/code/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header"
...

发生什么事了?原来是,每次 npm 安装这个包后,都会对 bcrypt 进行编译,然而不同环境下编译的结果并不通用。你在 Windows 或 macOS 环境下编译后,node_modules 直接上传到「函数计算」的 linux 环境,就不能用。怎么办,又不能在云端 npm install,非常头疼,解决方法想不到也搜不到。

刚才终于解决了。没有解决问题,而是解决了产生问题的东西「bcrypt」。方法就是用 bcryptjs 直接无缝替换,除了引用,连代码都不用改。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM