这是运行时显示的错误。
在 bcrypt 的 GitHub wiki 上,他们说它是 Node-js 的本机模块,并且需要编译器和构建依赖项才能构建。 我做错了什么,有人可以帮助我吗
{
"errorType": "Error",
"errorMessage": "/var/task/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header",
"stack": [
"Error: /var/task/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header",
" at Object.Module._extensions..node (internal/modules/cjs/loader.js:1057:18)",
" at Module.load (internal/modules/cjs/loader.js:863:32)",
" at Function.Module._load (internal/modules/cjs/loader.js:708:14)",
" at Module.require (internal/modules/cjs/loader.js:887:19)",
" at require (internal/modules/cjs/helpers.js:74:18)",
" at Object.<anonymous> (/var/task/node_modules/bcrypt/bcrypt.js6️⃣16)",
" at Module._compile (internal/modules/cjs/loader.js:999:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)",
" at Module.load (internal/modules/cjs/loader.js:863:32)",
" at Function.Module._load (internal/modules/cjs/loader.js:708:14)"
]
}
我遇到了同样的问题,通过使用
**bcryptjs** (npm i bcryptjs)
而不是 bcrypt 包解决了它。
bcrypt 在 lambda 上似乎失败,因为它使用 node-gyp 来构建和安装 - 但不确定是否必须通过它来工作。
在那之前,bcryptjs 就可以工作了。
当 bcrypt 模块安装在不同的系统(例如 Windows 或 macOS)上但在使用 Amazon Linux 的 AWS Lambda 上运行时,通常会出现“无效的 ELF 标头”错误。 可以使用 bcryptjs 包代替 bcrypt